Javascript 如何在Express中处理GET参数?
我想得到url参数,如果用户错误地定义了url,我需要发送一个错误 我的url是: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
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);
}) ;