我有一个Sails应用程序,我正试图根据id
模型的recipe
从数据库中加载一些数据。
我已经设置了路由'GET /recipes/single-recipe/:id': { action: 'recipes/view-single-recipe' }
,并且正在访问网址http://localhost:1337/recipes/single-recipe/5b8c169936f1df3439fa39c7
在我的view-single-recipe
动作中,我试图通过访问req.param('id')
来加载URL参数为id的配方,但是req
显示为未定义。
//view-single-recipe.js
module.exports = {
friendlyName: 'View single recipe',
description: 'Display "Single recipe" page.',
exits: {
success: {
viewTemplatePath: 'pages/recipes/single-recipe'
}
},
fn: async function(inputs, exits) {
const recipe = await Recipe.find({
id: req.param('id') //req undefiend
});
// Respond with view.
return exits.success({
recipe: recipe
});
}
};
获取错误:error: Sending 500 ("Server Error") response:
ReferenceError: req is not defined
如何使用url参数加载正确的配方?
答案 0 :(得分:0)
如果您有路由 /recipes/single-recipe/:id'
,则URL路径中的“ id
”将是可用为 req.params.id
。否则,默认为{}
来获取更多info
更新:
但是关于动作和控制器,Sails.js
使用 machine-as-action
模块自动创建 route-handling
可以在example这样的机器上运行。请参阅more information的机器操作文档。
请注意,“行动机器”提供的操作可以访问 request
对象,而不仅仅是<{1}} ,否则将出现服务器错误 this.req
。因此,不要忘记req
关键字,以备将来参考。