我正在尝试构建一个博客API,现在我的架构中有三个字段:
const PostSchema = new Schema({
timestamp: {
type: Date,
default: Date.now
},
title: {
type: String,
required: [true, "Title is required"]
},
content: {
type: String,
required: [true, "Content is required"]
}
})
我还有createPost
函数,应该创建一个帖子(没有狗屎):
// Create post
const createPost = (req, res, next) => {
const title = req.body.title
const content = req.body.content
console.log('body', req.body) // getting output
if (!title) {
res.status(422).json({ error: "Titel saknas!!!" })
}
if (!content) {
res.status(422).json({ error: "Skriv något för fan!" })
}
const post = new Post({
title,
content
})
post.save((err, post) => {
if (err) {
res.status(500).json({ err })
}
res.status(201).json({ post })
})
}
我有两个if语句来检查标题或内容是否为空,但是不起作用。我试图向Postman发送POST请求:
所以我想知道为什么这不起作用,感觉就像一些明显的东西,但我不能让它发挥作用。
感谢阅读。
答案 0 :(得分:3)
我不太了解邮递员,但我猜测将正文内容类型设置为raw
会将正文上传为text/plain
,这意味着{{1}不会以任何方式解析它(body-parser
将显示"正文字符串" )。
相反,请尝试将内容类型设置为console.log('body', typeof req.body)
(并确保您的服务器使用application/json
中的JSON中间件)。