快速路由并从请求数据中保存Mongoose文档

时间:2016-06-20 09:38:08

标签: node.js mongodb express mongoose

此代码使用npm“Wagner”并更新用户的购物车

我不明白为什么 req.user 可以像mongoose文档一样保存

将请求数据转换为文档并保存的正常方法是什么 不使用“瓦格纳”

以下代码如下所示

服务器从请求中获取数据: cart = req.body.data.cart

然后更新购物车: req.user.data.cart = cart

现在保存用户数据: req.user.save(....)

我的问题是为什么我们不首先需要创建一个Mongoose文档?

req.user 只是一个JSON对象吗?

由于

   passport.deserializeUser(function (id, done) {
        User.findById(id, function(err, user) {
            done(err, user);
        });
    });

   api.put('/me/cart', wagner.invoke(function(User) {
        return function(req, res) {
            var cart;
            try {
                cart = req.body.data.cart;
            } catch (e) {
                return res.
                status(status.BAD_REQUEST).
                json({ error: 'No cart specified!' });
            }
            req.user.data.cart = cart;
            req.user.save(function(error, user) {
                if (error) {
                    return res.
                    status(status.INTERNAL_SERVER_ERROR).
                    json({ error: error.toString() });
                }
                return res.json({ user: user });
            });
        };
    }));

用户模型在另一个文件中定义 并通过 wagner.factory

注册

 var User =mongoose.model('User', require('./user'), 'users');

0 个答案:

没有答案