gpt4 book ai didi

javascript - Mongoose 保存一个空对象

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

我在将数据保存到数据库时遇到问题,mongoose 保存了没有值(value)的空对象。使用平均堆栈。

Controller :例如我发送一些“你好消息”

    $http({
method: 'POST',
url: '/api/message',
headers: {'Content-Type': 'application/json'},
data: JSON.stringify({msg: $scope.message})
}).

success(function(response) {
console.log("Success " + JSON.stringify(response));
}).

error(function(response) {
console.log("Error " + JSON.stringify(response));
});

服务器.js

    var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({type: 'application/vnd.api+json'}));

var message = mongoose.model('Message', {
message: String
})

app.post('/api/message', function(req,res) {
var message = new Message(req.body);
message.save(function(err) {
if(err) throw err;

console.log(message);
})

res.status(200).send();
console.log(req.body);
})

我的“你好”消息到达了服务器,但是 mongoose 保存了一个空对象

{msg: "hello"} // console.log(req.body);
{"_id":"584ee18f169f902b7046e991","__v":0} // console.log(message);

我做错了什么??

最佳答案

您的请求正文与 Message 定义不匹配。 req.body 包含一个 msg 属性,但是 Message 需要一个 message 属性。

我会在你的 Angular Controller 中交换以下行:

data: JSON.stringify({msg: $scope.message})    

对此:

data: JSON.stringify({message: $scope.message})

如果您愿意,您还可以更新 Message 模型以具有名为 msg 的属性,而不是更改 Angular 代码。

关于javascript - Mongoose 保存一个空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107312/

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