Mongoose保存请求正文中的所有参数

时间:2014-12-05 12:25:17

标签: javascript node.js mongodb express mongoose

我正在设置一个小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的所有模型参数,因此保存方法e.t.c不再起作用。

我尝试过car.data = req.body但是这需要将我的所有mongoose模式包装到一个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()方法不适用于猫鼬模型。

1 个答案:

答案 0 :(得分:13)

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

var car = new Car(req.body);

这里也是一个参考: Passing model parameters into a mongoose model