gpt4 book ai didi

node.js - express 默认路由参数

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:39 24 4
gpt4 key购买 nike

我很惊讶我找不到这个,所以它之前可能已经回答过(而且我正在搜索错误的东西)。

基本上,是否可能以及如何在 nodejs 快速路由上设置默认值?

// Test route
router.route('/tests/:id')
.get(testsController.tests.get);

如果未设置:id,它将自动设置为任意值,例如1.

Controller 代码:

var testsController = {
tests: {
get: function (req, res, next) {
if (req.params.id) {
res.render('tests.html', { title: 'The Site', id: req.params.id });
next();
} else {
//res.redirect('/')
console.log('here');
}
}
}
};

我知道在 PHP Symfony2 中我可以做这样的事情:

/**
* @Route("/tests/{id}")
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function testAction(Request $request, $id=1)
{
}

最佳答案

您设置正确,但之后您需要从请求对象中获取参数,它不会自动传递给操作:

req.params.id

[编辑]要使参数可选,您应该像这样定义路由:

router.route('/tests/:id?')
.get(testsController.tests.get);

如果您想设置默认值,请执行以下操作:

res.render('tests.html', { title: 'The Site', id: req.params.id || 1 });

关于node.js - express 默认路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136788/

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