gpt4 book ai didi

Node.JS Express 4 - Mongoose 不保存数据

转载 作者:可可西里 更新时间:2023-11-01 09:12:09 27 4
gpt4 key购买 nike

我正在尝试将数据保存在 MongoDB 中与 MongooseExpress.JS 4Bluebird .

我做的是这样的-

bin/www

var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');

.......
.......

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function()
{// successfully connected!
console.log("Successfully Connected to Mongo-DB");
});

然后在控制台中得到它-

Successfully Connected to Mongo-DB` - So, MongoDB connected successfully

模型/post.js

var mongoose = require('mongoose');

var postSchema = new mongoose.Schema({
created_by: String, //should be changed to ObjectId, ref "User"
created_at: {type: Date, default: Date.now},
text: String
});

module.exports = mongoose.model('Post', postSchema);

应用程序.js

var Post_Data = require("./models/post");
....
....
router.get('/', function(req, res, next)
{
var Post = mongoose.model("Post");

var post = new Post({
created_by: ""+Math.random()
});

console.log( Post.create(post) );


res.render(
'index',
{
title : 'Express',
site_name : 'Our Site',
layout : 'templates/layout'
}
);
});

然后我在控制台中得到这个-

Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined }

但是,什么都没有保存,证明是 -

我找到了这个-

enter image description here

使用后MongoBooster .

更新-

我的数据库配置是这样的-

"MONGO_URI": "mongodb://localhost:27017/express_test",
"MONGO_OPTIONS": {
"db": { "safe": true },
"name":"express_test"
}

所以,任何人都可以帮忙,为什么它没有保存任何东西?

在此先感谢您的帮助。

最佳答案

.create()函数是 new Model.save() 的快捷方式.您正在尝试.create Model 的实例而不是简单的对象。参见 Constructing documents in Mongoose's Models documentation对于他们的快速示例。

Mongoose 数据函数的返回只是对将来要运行的异步任务的 promise ,日志记录在很大程度上毫无意义。使用 .then()等到 promise 已经解决。

您的代码中也缺少错误处理,那里可能会抛出一些东西。使用.catch()用于 promise 错误处理。

Post.create({ created_by: ""+Math.random() })
.then(function (result) {
console.log('Saved' result)
})
.catch(function (err) {
console.error('Oh No', err)
})

所有这些都可以通过回调来完成(如 Mongoose docco 示例),但 promise ,尤其是 Bluebird promise 更好。

关于Node.JS Express 4 - Mongoose 不保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38842920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com