我正在尝试构建博客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语句,以检查标题或内容是否为空,但这不起作用。我试图通过邮递员发送POST请求:
但是错误表明我的
title
丢失了。但我正在传递我的标题密钥。所以我想知道为什么这不起作用,感觉有些明显的东西,但是我无法使它起作用。
谢谢阅读。
最佳答案
我不太了解邮递员,但我想猜测是将正文内容类型设置为raw
会将正文上载为text/plain
,这意味着body-parser
不会以任何方式解析它(console.log('body', typeof req.body)
将显示“正文字符串”)。
相反,尝试将内容类型设置为application/json
(并确保您的服务器使用body-parser
中的JSON中间件)。
关于javascript - 检查变量是否为空不起作用NodeJS Express,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45998847/