我想获取url参数,如果用户错误地定义了url,我需要发送错误。
我的网址是:localhost:8080/user?id=1
如果用户输入的网址为:localhost:8080/use?id=1
,我们该如何处理?
if (app.get("/user")) {
app.get("/user",function(req,res,next){
console.log('In');
});
} else {
console.log('something went wrong in url');
}
答案 0 :(得分:3)
不需要if / else语句。只需列出所有路径,并在末尾添加默认路径。如果查询与您的任何定义不匹配,它将调用默认路径。
app.get("/user",function(req,res){
res.send('called user');
});
...
app.get("/*", function(req, res){
res.send('wrong path');
});
请注意,订单很重要,如果您将"/*"
置于顶部,则会占据其他订单。所以它必须是最后一个。
答案 1 :(得分:0)
您可以使用网址模块中的解析功能解析 req.url :
这是来自node.js文档的the example:
node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan',
search: '?name=ryan',
query: 'name=ryan',
pathname: '/status' }
答案 2 :(得分:0)
app.get
是一个事件处理程序。仅当请求与该路由匹配时才会调用相应的callback
。您不需要为它指定if语句。你需要研究一下javascript以及事件/回调如何工作。我认为this article看起来不错。
答案 3 :(得分:0)
app.get是一个事件处理程序。 不需要if条件。 我希望你改变网址
localhost:8080/user?id=1
要
localhost:8080/user/1
如果未定义路径ie:localhost:8080 / user / 1,则freamwork会自动显示消息
无法GET / user / 1
app.get("/user/:id", function(req, res){
console.log('In userId = '+req.params.id);
}) ;
注意:id ,您可以使用此名称访问代码中的值。如果您的网址中有多个变量,例如
localhost:8080/user/1/damodaran
所以你的app.get看起来像
app.get("/user/:id/:name", function(req, res){
console.log('In userId = '+req.params.id+' name:'++req.params.name);
}) ;
检查这些链接