javascript - Mongoose 中的保存方法失败

标签 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() 呢?

最佳答案

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

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

Mongoose docs 中所述,模型上还有一个简写的 create 方法。

关于javascript - Mongoose 中的保存方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38419939/

相关文章:

mongodb - 将动态数组结构传递给函数 Golang

javascript - 我的输入 : onChange handler is not working on mobile

javascript - 在ie中为html5播放器设置 "src"属性

javascript - 如何从 React 中的 cdn/script 标签导入 javascript 包?

linux - 无法使用 pip 下载 mongo-connector

node.js - mongoose find 不返回任何文档,而 compass 则返回

javascript - 如何返回二维数组中的多列

javascript - 在没有数字占位符的情况下在 JavaScript 中复制 C# 的 string.format()

javascript - nodejs请求url并返回json,body为空

node.js - Sequelize 复杂的 join 语句