gpt4 book ai didi

javascript - Mongoose 保存不正确的值

转载 作者:行者123 更新时间:2023-11-30 16:18:44 27 4
gpt4 key购买 nike

从 post 请求创建对象时,来自请求正文的两个字段都被设置为字段名称本身。我没有收到任何错误,但我也没有在响应中返回请求正文的预期 JSON 对象。我使用的是本地 mongodb 实例,但现在我使用的是 mongolab 数据库,我认为它可能会解决问题,但没有任何改变。

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

if (req.body.title !== undefined) {
post.title = req.body.title; // Set title (from request)
}
if (req.body.content !== undefined) {
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(req.body);
}
});

})

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

});
});

module.exports = router;

请求 JSON:

{
"title": "sample title",
"content": "sample content"
}

输出:

[
{
"lastUpdated": "2016-01-29T07:26:01.810Z",
"uploadDate": "2016-01-29T07:26:01.810Z",
"content": "content",
"title": "title"
}
]

最佳答案

您不能在不包含正文解析器的情况下使用 req.body,并期望 req.body 以 express 的形式产生预期的结果。你做了 npm install body-parser 吗?我没有看到您在代码中需要 body-parser。也许你包括了body-parser在你的主文件中。我相信如果你不使用它,req.body 将是空的。

将此添加到您的其他需求下方

var bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({extended : false}));

app.use(bodyParser.json())

并且不要忘记在您的终端中执行 npm install body-parser

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

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