javascript - Mongoose 不保存数据

标签 javascript node.js mongodb express mongoose

我在对我的数据库进行简单查询时遇到问题。按照本教程进行操作:https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4当调用 Model.find() 时,他会收到一个返回的 JSON 对象,其中包含名称字段(唯一的自定义字段)以及 _id 和 __v。当我这样做时,我收到的只是 _id 和 __v 字段。我确实收到了成功的回复,说帖子已创建,但它不包含标题或内容字段。然而查询显示数据从未保存。

路由和查询:

var express = require("express");
var router = express.Router();
var Post = require("../app/models/post.js");

/* Drop Post collection
Post.remove({}, function(err, num_docs) {
    if (err) {
        res.send(err);
    } else {
        console.log("Collection dropped, documents deleted: " + num_docs);
    }
});
*/

// Middleware for all routes.
router.use(function(req, res, next) {
    console.log("API request made.");
    next(); // Go to next routes, don't stop here
});

// Test route to ensure routing is working
router.get("/", function(req, res) {
    res.json({
        message: "Hooray! Welcome to the API!"
    });
});

// On routes that end in /posts
router.route("/posts")
    // Create post. (Accessed at POST http://localhost/api/posts)
    .post(function(req, res) {

        var post = new Post(); // Create new instance of post model

        post.title = req.body.title; // Set title (from request)
        post.content = req.body.content; // Set content (from request)

        // Save the post, and check for errors.
        post.save(function(err) {
            if (err) {
                res.send(err);
            } else {
                res.json({
                    message: "Post created!",
                    title: post.title,
                    content: post.content
                });
            }
        });
    })

    .get(function(req, res) {
        Post.find({}).exec(function(err, posts) {
            if(err) {
                res.send(err);
            } else {
                res.json(posts);
            }

        });
    });

module.exports = router;

响应:

[
    {
        "_id": "56a6adc31f06c4dc1cf82888",
        "__v": 0
    },
    {
        "_id": "56a9768888f806dc1fe45415",
        "__v": 0
    },
    {
        "_id": "56a97f3f4e269b7c21311df8",
        "__v": 0
    }
]

shell 中的数据库查询返回相同的信息,只是一个 _id 和 __v 字段。

最佳答案

我现在很困惑。它突然起作用了,代码与上面完全相同。我打算让这个开放,以防有一天有人偶然发现它并可以解开这个谜团。

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

相关文章:

javascript - 将 Node.js Express 变量传递给我的静态 javascript 文件

javascript - 无法从我的 Angular2 应用程序中连接到我的 WebSocket

ruby-on-rails - 返回查询中的嵌入文档

javascript - 我如何使用 jQuery 检测 IE 8?

javascript - 未捕获类型错误 : . 。不是 javascript 中的函数

android - 如何在现有 Phonegap 应用程序中更新 Cordova?

php - 如何为 mamp pro 添加 mongodb.so 扩展名?

java - 导出jar后出现NoClassDefFoundError

javascript - 无法在 JavaScriptCore JSContext 中运行 proj4.js

javascript - 如何在 struts2 属性标签中提供 javascript 函数和 css 样式