gpt4 book ai didi

node.js - 将额外参数传递给 Express 中的路由处理程序

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:16 26 4
gpt4 key购买 nike

我对 Express 比较陌生,我正在寻找一种使路线更可重用的方法。在我的应用程序中,我将有很多可以传递给通用处理程序的路由,但会有不同的模板。

示例:

app.get('/about', function(req, res) {
res.render('about.html');
});

app.get('/', function(req, res) {
res.render('home.html');
});

虽然这个例子令人遗憾,但我有 30 多个这样的路线。我希望能够做的是这样的:

app.get('/about', generic.render('about.html'));

或者以其他方式将模板名称传递给返回res.render的函数,这在Express中可能吗?我所有解决此问题的尝试都会导致变量未定义。

我不想做这样的事情,紧密耦合我的路由参数和模板名称:

app.get('/:template', function(req, res) {
res.render(req.params.template + '.html');
});

最佳答案

您可以制作一个简单的中间件来为您完成此操作。示例:

function simpleRender(file, opts) {
opts || (opts = {});
return function(req, res) {
res.render(file, opts);
};
}

然后像这样使用它:

app.get('/about', simpleRender('about.html'));

app.get('/', simpleRender('home.html'));

关于node.js - 将额外参数传递给 Express 中的路由处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com