【问题标题】:Mongoose save all parameters from request bodyMongoose 保存请求正文中的所有参数
【发布时间】:2015-02-03 14:53:58
【问题描述】:

我正在设置一个小 API,在我的应用程序的客户端进行一些数据验证,同时我正在构建我的数据以匹配我的 mongoose 架构。

我正在尝试这样做...

router.route('/car')
.post(function(req, res) {
    var car = new Car();

    car = req.body; // line under scrutiny

    car.save(function(err) {
        if(err) {
            console.log(err);
            res.status(400);
            res.send(err);
        }
        else {
            res.status(200);
            res.json({
                message: req.body.name + ' successfully registered!'
            });
        }
    });
});

当然,这目前是去掉了mongoose提供的car的所有模型参数,所以save方法e.t.c已经失效了。

我尝试了car.data = req.body,但这需要将我所有的猫鼬模式包装到一个不太优雅的data 对象中。

我想知道是否有任何方法可以避免准备 car 对象在没有长手的情况下进行保存;

car.name = req.body.name;
car.seats = req.body.seats;
car.engine_size = req.body.engine_size; 

e.t.c.

我基本上想做与car.push(req.body); 等效的操作,但同样,.push() 方法不适用于猫鼬模型。

【问题讨论】:

    标签: javascript node.js mongodb express mongoose


    【解决方案1】:

    您可以像这样将req.body 传递给您的Car

    var car = new Car(req.body);
    

    这里还有一个参考: Passing model parameters into a mongoose model

    【讨论】:

    • 我的问题是:这安全吗?就像...不能有人在req.body 中包含一个函数save 并搞砸整个事情吗?
    猜你喜欢
    • 2019-02-14
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多