在 CRUD 操作中遇到一些错误?
Facing some errors in CRUD operation?
我为 CRUD 创建了一个程序,但遇到了问题
控制器程序:-
const Greeting = require("../models/model.js");
exports.create = (req, res) => {
if (!req.body.message) {
return res.status(400).send({ message: "Note content can not be empty" });
}
const greeting = new Greeting({
name: req.body.name || "Name Needed",
message: req.body.message,
});
Greeting.pushData(greeting);
};
modules.js
const GreetingSchema = mongoose.Schema(
{
name: String,
message: String,
},
{
timestamps: true,
}
);
module.exports = mongoose.model("Greeting", GreetingSchema);
const Schema = mongoose.model("Greeting", GreetingSchema);
pushData = (greeting) => {
const data = new Schema({
name: greeting.name,
message: greeting.message
});
data
.save()
.then((data) => {
res.send(data);
})
.catch((err) => {
res
.status(500)
.send({
message: err.message || "Error Occurred while creating Greeting",
});
});
}
module.exports = {pushData};
并出现错误:
*
TypeError: Greeting 不是构造函数
在 exports.create(E:\Projects\Greeting-App_backend - Copy\controller\controller.js:9:20)
在 Layer.handle [作为 handle_request] (E:\Projects\Greeting-App_backend - Copy\node_modules\express\lib\router\layer.js:95:5)
接下来 (E:\Projects\Greeting-App_backend - Copy\node_modules\express\lib\router\route.js:137:13)*
错误表明您的 Greeting 模型不是构造函数。再次检查您的模型,看看它是否符合如何在 Javascript.
中创建构造函数的正确格式
function Greeting(greeting) {
this.name = greeting.name;
this.message = greeting.message;
}
您的代码中几乎没有错误。
- 如果您想将 pushData 方法保留在模型中并通过模型架构访问,则它应该是架构的一部分。如果你像下面那样做,就不需要导出 pushData。
GreetingSchema.methods.pushData = (greeting) => {
// your code
}
module.exports = mongoose.model("Greeting", GreetingSchema);
- 在控制器中它将是 -
greeting.pushData(greeting);
我为 CRUD 创建了一个程序,但遇到了问题 控制器程序:-
const Greeting = require("../models/model.js");
exports.create = (req, res) => {
if (!req.body.message) {
return res.status(400).send({ message: "Note content can not be empty" });
}
const greeting = new Greeting({
name: req.body.name || "Name Needed",
message: req.body.message,
});
Greeting.pushData(greeting);
};
modules.js
const GreetingSchema = mongoose.Schema(
{
name: String,
message: String,
},
{
timestamps: true,
}
);
module.exports = mongoose.model("Greeting", GreetingSchema);
const Schema = mongoose.model("Greeting", GreetingSchema);
pushData = (greeting) => {
const data = new Schema({
name: greeting.name,
message: greeting.message
});
data
.save()
.then((data) => {
res.send(data);
})
.catch((err) => {
res
.status(500)
.send({
message: err.message || "Error Occurred while creating Greeting",
});
});
}
module.exports = {pushData};
并出现错误:
*
TypeError: Greeting 不是构造函数
在 exports.create(E:\Projects\Greeting-App_backend - Copy\controller\controller.js:9:20)
在 Layer.handle [作为 handle_request] (E:\Projects\Greeting-App_backend - Copy\node_modules\express\lib\router\layer.js:95:5)
接下来 (E:\Projects\Greeting-App_backend - Copy\node_modules\express\lib\router\route.js:137:13)*
错误表明您的 Greeting 模型不是构造函数。再次检查您的模型,看看它是否符合如何在 Javascript.
中创建构造函数的正确格式function Greeting(greeting) {
this.name = greeting.name;
this.message = greeting.message;
}
您的代码中几乎没有错误。
- 如果您想将 pushData 方法保留在模型中并通过模型架构访问,则它应该是架构的一部分。如果你像下面那样做,就不需要导出 pushData。
GreetingSchema.methods.pushData = (greeting) => {
// your code
}
module.exports = mongoose.model("Greeting", GreetingSchema);
- 在控制器中它将是 -
greeting.pushData(greeting);