Mongoose中的save方法失败了

时间:2016-07-17 09:47:19

标签: javascript node.js mongodb mongoose

我尝试在Mongoose中使用save(),但是已经插入了空集合。

我的照片架构是这样的:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var photosSchema = mongoose.Schema({
    photos: {
        type: String
    },
    caption: {
        type: String
    }
});

var Photos = module.exports = mongoose.model('photos', photosSchema);

module.exports.getAllPhotos = function(callback){
    Photos.findAll(callback);
}

在我的路线中我做了

var Photo = require('../models/photos');
router.post('/upload_photo', upload.any(), function(req, res, next) {
    var photo = new Photo();
    var data = {
        photos:'abc.jpg',
        caption:'something..'
    }
    photo.save(data);
    res.end();
});

我在这里使用save错了吗?我知道我可以定义像savePhoto这样的方法并将其导出,但是如何直接使用save()

2 个答案:

答案 0 :(得分:1)

尝试这样,即将数据直接传递给构造函数,并在异步时结束响应流。 save已完成(也可能添加错误处理)。

var photo = new Photo({
    photos:'abc.jpg',
    caption:'something..'
});
photo.save(function(err) {
    res.end();
});

Mongoose docs

中描述的模型上还有一个速记create方法

答案 1 :(得分:0)

尝试这样,如果有任何问题,您将能够看到问题:

var data = {
    photos:'abc.jpg',
    caption:'something..'
};
var photo = new Photo(data);
photo.save(function (err) {
    if (err) console.log(err);
    res.end();
});