在NodeJS/Express中使用POST方法从URL获取参数

7
我希望做以下事情,但我不知道是否可以在URL中进行字符串操作来实现。 我想从URL获取一些参数,虽然我有一些通过POST数据传递的数据,但我需要从URL中获取一些信息(userID):
  1. 我正在使用express
  2. 我正在使用post方法
  3. 我的URL类似于:

http://www.mydomain.com/api/user/123456/test?v=1.0

我有以下代码来获取所有POST请求:

var http = require('http');
var url = require('url') ;
exp.post('*', function(req, res, next) {
     var queryObject = url.parse(req.url,true).query; // not working only get in the object the value v=1.0
     var parameter = req.param('name'); // get undefined

}

我错过了什么?

谢谢


可能是重复的问题:如何在Node.js中获取GET(查询字符串)变量? - MikeSmithDev
1个回答

10
GET参数(作为一个对象)位于req.query中。试一试这个:
exp.post('*', function(req, res, next) {
  console.log(req.query);
  console.log(req.query.v);
  next();
});

如果您想从URL本身获取参数化的slug,那么您需要以不同的方式设置路由。这些位于req.params中:

exp.post('api/user/:userid', function(req, res, next) {
  console.log(req.params);
  console.log(req.params.userid);
  next();
});

3
很高兴听到它正在运作!如果您满意,请不要忘记单击答案旁边的复选标记。 - SamT
@SamT,你能告诉我如何验证“userid”吗?我遇到了一个问题。假设我的API URL是“api/user/:userid”。当我调用没有任何值的userid的API时,响应返回404。你能告诉我如何验证参数吗? - Arj 1411
http://stackoverflow.com/questions/41933674/uri-parameter-validation-in-mcs-nodejs - Arj 1411

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接