MongoDB不保存正确的数据和重复记录

时间:2016-05-08 18:45:32

标签: javascript node.js mongodb express mongoose

我有一个明确的应用程序。

在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):

enter image description here

timelineItem:

enter image description here

.save函数返回的项目:

enter image description here

现在,这一切都很好,但是我尝试了4次发送数据,4次终端显示了我期望的数据但是当我去mlab mongoDB并查看集合时,它正在保存随机代码与我在终端中看到的ID不同,并且它甚至不保存数据!!

我很困惑,终端怎么能告诉我一件事,但数据库显示另一件事?

这是最后4个数据库条目的屏幕截图,其中包含ID,以显示我发送的数据不在其中,也没有显示给我的ID,DB中的ID,实际上,我发送的任何帖子请求都没有,并且已经在控制台中显示为好,实际上已正确保存...

enter image description here

我在这里做错了吗?我不相信我,所以为什么不保存正确的数据,而是复制已经在集合中的最后一条记录,只是递增id?

我很困惑,有什么想法吗?

0 个答案:

没有答案