如何在Express中处理GET参数?

我想获得url参数,如果url被用户错误定义,我需要发送一个错误。

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

如果用户input的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'); } 

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

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

请注意,顺序是重要的,如果你把"/*"放在最上面,它将主宰其他。 所以它必须是最后一个。

你可以使用来自url模块的parsing函数来parsingreq.url

以下是node.js文档中的示例 :

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

app.get是一个事件处理程序。 仅当请求与该路由匹配时才会调用相应的callback 。 你不需要为它指定一个if语句。 你需要学习一些JavaScript以及事件/callback是如何工作的。 我觉得这篇文章看起来不错。

app.get是一个事件处理程序。 没有必要的条件。 我更喜欢你改变url

 localhost:8080/user?id=1 

 localhost:8080/user/1 

如果pathie:localhost:8080 / user / 1没有被定义,则前台程序会自动显示消息

无法GET / user / 1

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

注意:id ,你可以使用这个名字来访问代码中的值。例如,如果你的url中有多个variables,例如

 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); }) ; 

检查这些链接

expressjs api

快递app.get文档