用于检查强制参数的 Node.js 中间件
我在当前的应用程序中使用node.js 和express。 我创建了几个中间件函数,每个函数的创建方式如下:
function loadUser(req, res, next){
...
}
我想创建一个中间件来检查快速操作中是否存在强制参数。例如,我有一个 /user/create 操作,需要昵称、密码、电子邮件...作为强制参数。然后,我需要将此参数列表传递给中间件,以便它可以检查这些参数是否存在于 req.query 中。
有什么想法吗?
更新
我终于完成了以下操作(在express文档中,有一个需要附加参数的中间件示例http://expressjs.com/guide.html#route-middleware)。
function checkParams(arr){
return function(req, res, next) {
// Make sure each param listed in arr is present in req.query
var missing_params = [];
for(var i=0;i<arr.length;i++){
if(! eval("req.query." + arr[i])){
missing_params.push(arr[i]);
}
}
if(missing_params.length == 0){
next();
} else {
next(JSON.stringify({ "error" : "query error", "message" : "Parameter(s) missing: " + missing_params.join(",") }));
}
}
}
然后像其他中间件一样调用它:
app.post('/user/create', checkParams(["username", "password"]), function(req, res){
...
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过将其实现为动态助手而不是中间件?它可能会起作用。
Have you tried implementing it as a dynamic helper instead of a middleware? It might work.