gpt4 book ai didi

node.js - 使用 post api 将数据保存到 mongodb

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:13 25 4
gpt4 key购买 nike

我的 api 文件中有一个 post 函数。我想使用此帖子请求在 mongodb 数据库中保存电子邮件:

rest-api/emails?from="test@mail.com"&"to"="test@test.com"&subject="some subject"&content="some more content"&provider=sendgrid&success=false

我的帖子方法如下:

.post((req, res)=>{

db.models.Email.create({from:req.body.from ,
to: req.body.to,
subject: req.body.subject,
content: req.body.content,
success: req.body.success,
provider: req.body.provider}, (err, result)=>{
if(err){
handleErrors(res, err);
console.log(`error in creating Email :${err}`)
}else {
console.log()
res.json(result)
}
});
});

在此发布请求之后,仅 _idsuccessprovider 字段保存在 mongodb 中。我该如何解决这个问题?

编辑:我从发布请求中删除了所有“但仍然无法正确保存:

localhost:3000/rest-api/emails?from=example@example.com&to=test@test.com&subject=somesubject&content=somemorecontent&provider=sendgrid&success=false

资源:

{
"__v": 0,
"_id": "599add615fcb202b34c6a13e",
"success": false,
"provider": "sendgrid"
}

编辑:型号:

var ValidationError = mongoose.Error.ValidationError;
var Schema = mongoose.Schema;

mongoose.Promise = global.Promise ;

var validateEmail = function(email) {
if (email) return validator.isEmail(email);
return true;
}

var EmailSchema = new Schema({
from: {type: String, maxlength:100},
to: {type: String, maxlength:100},
subject: {type: String},
content: {type: String},
provider: {type: String, maxlength: 30, required: false, default: "sendgrid"},
sentdate: { type: Date },
success: {type: Boolean, default: false}
});
EmailSchema.pre('save',(next)=>{
// if(!this.sentdate){
// this.sentdate = Date.now();
// }
next();
});

EmailSchema.plugin(mongoosePaginate);
var Email = mongoose.model('Email',EmailSchema);




module.exports ={
models:{
Email
},
url: 'mongodb://localhost/emilapp',
}

req.body 控制台:{}请求正文为空!

最佳答案

req.body 用于在您以 GET 请求发送数据时用于发布请求数据。发送到 Express 服务器的查询字符串存储在 req.query 对象中。您需要将我们的代码修改为如下所示。

.post((req, res)=>{

db.models.Email.create({from:req.query.from ,
to: req.query.to,
subject: req.query.subject,
content: req.query.content,
success: req.query.success,
provider: req.query.provider}, (err, result)=>{
if(err){
handleErrors(res, err);
console.log(`error in creating Email :${err}`)
}else {
console.log()
res.json(result)
}
});
});

关于node.js - 使用 post api 将数据保存到 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798077/

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