在 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;
}

您的代码中几乎没有错误。

  1. 如果您想将 pushData 方法保留在模型中并通过模型架构访问,则它应该是架构的一部分。如果你像下面那样做,就不需要导出 pushData。
GreetingSchema.methods.pushData = (greeting) => {
  // your code
}
module.exports =  mongoose.model("Greeting", GreetingSchema);

  1. 在控制器中它将是 -
greeting.pushData(greeting);