【发布时间】:2021-01-04 15:25:12
【问题描述】:
即使在邮递员中提供了名称的键值后,我仍会收到所需名称的错误。我想我在架构中犯了一个错误
app.post('/api/genres', (req, res)=>{
const { error }= validateGenre(req.body)
if (error) return res.status(400).send(error)
const genre = {
id: genres.length +1,
name: req.body.name
}
genres.push(genre)
res.send(genre)
})
app.put('/api/genres/:id', (req,res) => {
const genre = genres.find(c => c.id===parseInt(req.params.id))
if(!genre) return res.status(404).send('Invalid ID')
const { error }= validateGenre(req.body)
if (error) return res.status(400).send(error.details[0].message)
genre.name= req.body.name
res.send(genre)
})
// **I think I did something wrong here**
function validateGenre(genre) {
const schema = Joi.object({
name: Joi.string().min(3).required()
})
return schema.validate(genre);
}
【问题讨论】:
-
您可以在不运行整个服务器的情况下测试
validateGenre功能。试试这个console.log(validateGenre({ name 'Hello world' }));也试试console.log(typeof(req.body), req.body)以确保 body 是一个对象,并看到它有 name 属性。