javascript - Mongoose 模型不保存,不抛出错误
问题描述
我的猫鼬模型(节点/快速应用程序)既不保存也不抛出错误,我不知道为什么......
这是我的模型。它有一个 Post 通过架构 ID 引用许多评论:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var CommentSchema = new Schema({
body: {type: String, required: true, max: 2000},
created: { type: Date, default: Date.now },
flags: {type: Number, default: 0}
}, {
writeConcern: {
w: 0,
j: false,
wtimeout: 200
}
});
var PostSchema = new Schema({
body: {type: String, required: true, max: 2000},
created: { type: Date, default: Date.now },
flags: {type: Number, default: 0},
comments: [{ type: Schema.Types.ObjectId, ref: 'Comment' }]
}, {
writeConcern: {
w: 0,
j: false,
wtimeout: 200
}
});
var Post = mongoose.model('Post', PostSchema);
var Comment = mongoose.model('Comment', CommentSchema)
module.exports = {
Post: Post,
Comment: Comment
}
这是我的路线。它只是从传入的正文创建一个帖子并尝试保存它。它引用导出的帖子,model.Post
因为导出的模块是一个对象。
var express = require('express');
var router = express.Router();
const fs = require('fs');
var model = require('../models/model');
router.post('/uploadPost', (req, res, next)=>{
console.log('inside /uploadPost')
console.log('value of req.files: ', req.files)
console.log('value of req.body: ', req.body)
var post = {
body: req.body.post,
created: Date.now(),
flags: 0,
comments: []
}
console.log('value of post: ', post)
let postInstance = new model.Post(post)
console.log('value of postInstance: ', postInstance)
postInstance.save().then(post=>{
console.log('value of post: ', post)
}).catch( (e) => {
console.log('There was an error', e.message);
});
res.json({return: 'return from /uploadPost'})
})
module.exports = router;
这是我的终端输出。它管理console.log
除了保存回调或错误之外的所有内容。我认为这可能是与 的竞争条件res.json
,所以我把它放在回调中,但这也没有做任何事情。到底是怎么回事?
value of req.body: { post: 'lkjlkjlk' }
value of post: { body: 'lkjlkjlk',
created: 1552587547653,
flags: 0,
comments: [] }
value of postInstance: { flags: 0,
comments: [],
_id: 5c8a9b1ba7cece70037d3f46,
body: 'lkjlkjlk',
created: 2019-03-14T18:19:07.653Z }
编辑:
我错误地连接到猫鼬......叹息。
这是一个正确的连接代码(上面是正确的):
mongoose.connect("mongodb://localhost:27017/mydb");
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', function() {
// we're connected!
console.log('connected to mongoose db')
});
解决方案
推荐阅读
- google-bigquery - 如何在 Big Query SQL 中将 DD-MMM-YY 转换为 YYYY/MM/DD
- arangodb - arangoimport:边缘属性缺失或无效
- angular - Angular PWA dataGroups url 因新鲜度策略而消失
- python - AttributeError:类名的第一个字母
是小写的 - java-8 - 无法检测玩家何时加入世界
- thumbnails - 如何让 Window Explorer 一致地显示 Visio 图表的预览图标?
- game-development - 玩家在 godot 中滑坡
- java - 计算字符串中的所有元音
- xml - 为什么当我在 Odoo 10 中更新该模块时删除了该模块引入的数据记录?
- flask - Flask send_from_directory 请求环境位置参数