Javascript 如何在Express中处理GET参数?

Javascript 如何在Express中处理GET参数?,javascript,node.js,express,get,Javascript,Node.js,Express,Get,我想得到url参数,如果用户错误地定义了url,我需要发送一个错误 我的url是:localhost:8080/user?id=1 如果用户输入的url是: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

我想得到url参数,如果用户错误地定义了url,我需要发送一个错误

我的url是:
localhost:8080/user?id=1

如果用户输入的url是:
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');
}

您可以使用url模块中的解析函数解析req.url

以下是node.js文档:

node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan',
  search: '?name=ryan',
  query: 'name=ryan',
  pathname: '/status' }

不需要if/else语句。只需列出所有路径,并在末尾添加默认路径。如果查询与您的任何定义都不匹配,它将调用默认路径

app.get("/user",function(req,res){
    res.send('called user');
});

... 

app.get("/*", function(req, res){
   res.send('wrong path');
});

请注意,顺序很重要,如果您将
“/*”
放在顶部,它将支配其他部分。所以它必须是最后一个。app.get是一个事件处理程序。只有当请求与该路由匹配时,才会调用相应的
回调。您不需要为它指定if语句。您需要学习一些javascript以及事件/回调如何工作。我觉得这看起来不错

app.get是一个事件处理程序不需要if条件。 我希望您将url从更改为

localhost:8080/user?id=1

如果未定义路径ie:localhost:8080/user/1,则freamwork会自动显示消息

无法获取/user/1

注意: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);
}) ;
检查这些链接

localhost:8080/user/1/damodaran
app.get("/user/:id/:name", function(req, res){
console.log('In userId = '+req.params.id+' name:'++req.params.name);
}) ;