我有一个明确的应用程序。
在app.js中我需要mongoose并连接到我的数据库。
以下是我的app.js中的代码:
var mongoose = require("mongoose");
mongoose.connect(CONNECTION STRING IS IN HERE);
在./schemas中我有一个timelineItems.js,其中module.exports我的模型。
以下是该型号:
var mongoose = require("mongoose");
var timelineItemsSchema = mongoose.Schema({
postedTime: String,
postedPlace: String,
postedContent: String,
postedTitle: String,
});
var timelineItems = mongoose.model('timelime_items', timelineItemsSchema);
module.exports = timelineItems;
在admin-panel中我需要该架构并将其分配给变量timelineItems
,然后我说timelineItem
是该版本的新版本并传入req.body(以捕获数据)发布到创建路线),这是代码:
router.post('/:action', function (req, res, next) {
if (req.cookies.loggedIn) {
if (req.params.action.toLowerCase() == "create") {
var timelineItems = require("../schemas/timelineItems.js");
console.log(req.body)
var timelineItem = new timelineItems(req.body);
console.log(timelineItem)
timelineItem.save(function (err, item) {
if (err) return console.error(err);
res.send("item saved!");
console.log(item)
});
} else {
res.send("invalid post request - wrong route selected.");
}
} else {
var err = new Error('Access forbidden, please login!');
err.status = 403;
next(err);
}
});
一切都很好。当我发布到/ admin-panel / create路由时,我在终端中获得3个console.log结果,如下所示:
发布的数据(req.body):
timelineItem:
.save函数返回的项目:
现在,这一切都很好,但是我尝试了4次发送数据,4次终端显示了我期望的数据但是当我去mlab mongoDB并查看集合时,它正在保存随机代码与我在终端中看到的ID不同,并且它甚至不保存数据!!
我很困惑,终端怎么能告诉我一件事,但数据库显示另一件事?
这是最后4个数据库条目的屏幕截图,其中包含ID,以显示我发送的数据不在其中,也没有显示给我的ID,DB中的ID,实际上,我发送的任何帖子请求都没有,并且已经在控制台中显示为好,实际上已正确保存...
我在这里做错了吗?我不相信我,所以为什么不保存正确的数据,而是复制已经在集合中的最后一条记录,只是递增id?
我很困惑,有什么想法吗?