Node.js:req.body中的哪些键存在于模式中

时间:2013-07-22 01:38:44

标签: node.js mongodb express schema httprequest

当我收到POST请求时,我想获取其密钥存在于模型模式中的条目。例如,如果我的'用户'模型的模式由'name'和'email'键组成,那么当我迭代req.body时,我只想获得'name'和'email'字段的值。我该怎么做?

3 个答案:

答案 0 :(得分:0)

如果您有表单字段,

<input type="text" name="name">
<input type="text" name="email">

然后,而不是迭代req.body,你可以,

var name = req.body.name;
var email = req.body.email;

答案 1 :(得分:0)

以下是一些代码,使用 express bodyParser()中间件检索帖子请求正文中的字段:

var express = require('express');

var app = express();

// Middleware
app.use(express.bodyParser());
... // other middleware
// Routes
app.post('/path', function(req, res) {
    var name = req.body.user.name;
    var email = req.body.user.email;
    ... // some more code
});

希望有所帮助。

答案 2 :(得分:0)

如果我正确理解你的问题,你想要一组未指定的密钥来查询mongo,并且只返回这些密钥的数据。

如果确实如此,请使用Mongoose和lodash / underscore:

var keys = _.keys(req.body);

User.find(req.body).select(keys.join(' ')).lean().exec(function(err, user {
  if (err)
    throw err;

  res.send(user);
}):

假设有关req.body对象的某些内容以及密钥与模式的匹配方式。