我正在使用 nodejs/express/mongoose
我的型號:
const TodoSchema = new mongoose.Schema({
name: { type: String, required: ['Name is required'] },
},
});
控制器 :
async function createTask(req, res) {
try {
const task = new Todo({ name: req.body });
console.log(req);
console.log('Name check: ', req.name);
const result = await task.save();
console.log('check: ', task, result);
// res.send('Task created: ', result);
res.json({ msg: 'Task created', item: result });
} catch (error) {
console.log('Task creation error:', error);
return res.json({
msg: error,
});
}
}
我對郵遞員的回應:
"msg": {
"errors": {
"name": {
"name": "ValidatorError",
"message": "Name is required",
"properties": {
"message": "Name is required",
"type": "required",
"path": "name"
},
"kind": "required",
"path": "name"
}
},
"_message": "Todo validation failed",
"name": "ValidationError",
"message": "Todo validation failed: name: Name is required"
}
}
對于我的日志,req.name 是未定義的,而 req.body。
我看到了 mongoose 驗證的檔案和 type 關鍵字,并嘗試了建議,但沒有任何幫助。我的帖子端點怎么了?
uj5u.com熱心網友回復:
required在您的貓鼬模式中使用時出現錯誤,您錯過了true引數。這是我的例子 =>
const mongoose = require("mongoose");
const TaskSchema = new mongoose.Schema({
name: {
type: String,
required: [true, "You Must Provide name"],
trim: true,
maxlength: [23, "Maximum twenty characters"],
minlength: [5, "Minimum four characters"],
}
});
module.exports = mongoose.model("Task", TaskSchema);
uj5u.com熱心網友回復:
也許,你只是不添加中間件來表達。
app.use(express.json());
app.use(express.urlencoded({ extended: false }))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/335022.html
上一篇:合并排序不列印排序陣列
