Node.js Express可选参数

Node.js Express可选参数,node.js,express,Node.js,Express,我想要这样的路径:/skittles?type[]=blue和type[]=green(就像x-www-form-urlencoded,但这是对api的get请求) 因此,如果我有以下代码,我将如何向路由路径(当前/skittles)添加可选参数 您不需要将它们添加到路径中。您将在req.query对象中找到它们 var util = require('util'); app.get('/skittles', function(req, res) { console.log(req.que

我想要这样的路径:
/skittles?type[]=blue和type[]=green
(就像
x-www-form-urlencoded
,但这是对api的get请求)

因此,如果我有以下代码,我将如何向路由路径(当前/skittles)添加可选参数


您不需要将它们添加到路径中。您将在
req.query
对象中找到它们

var util = require('util');

app.get('/skittles', function(req, res) {
  console.log(req.query);
  var type = req.query.type || [];
  console.log("type: "+util.inspect(type));
  res.send("Type: "+util.inspect(type));
});

您可以像这样验证您在req.body或req.query中收到的输入请求参数

app.post('/v1/api/test-api', function(req, res) {
   var parameters = [];
   if(req.body.userName !== undefined) {
       //DO SOMEHTING
       parameters.push({username: req.body.userName});
   }
   if(req.body.userId !== undefined) {
       //DO SOMEHTING

       parameters.push({userId: req.body.userId});
   }
   if(req.body.userEmail !== undefined) {
      //DO SOMEHTING
       parameters.push({userEmail: req.body.userEmail});
   }

   res.json({receivedParameters: parameters});

});
你甚至不能将它们添加到路线中。
app.post('/v1/api/test-api', function(req, res) {
   var parameters = [];
   if(req.body.userName !== undefined) {
       //DO SOMEHTING
       parameters.push({username: req.body.userName});
   }
   if(req.body.userId !== undefined) {
       //DO SOMEHTING

       parameters.push({userId: req.body.userId});
   }
   if(req.body.userEmail !== undefined) {
      //DO SOMEHTING
       parameters.push({userEmail: req.body.userEmail});
   }

   res.json({receivedParameters: parameters});

});