Javascript CRUD操作中面临一些错误?

Javascript CRUD操作中面临一些错误?,javascript,node.js,mongodb,crud,Javascript,Node.js,Mongodb,Crud,我为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" }); } cons

我为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:问候语不是构造函数 在exports.create(E:\Projects\Greeting-App\u backend-Copy\controller\controller.js:9:20) 在Layer.handle[作为handle\u请求](E:\Projects\Greeting-App\u backend-Copy\node\u modules\express\lib\router\Layer.js:95:5)

下一步(E:\Projects\Greeting-App\u backend-Copy\node\u modules\express\lib\router\route.js:137:13)*

错误表明您的问候语模型不是构造函数。再次检查您的模型,看看它是否符合如何在Javascript中创建构造函数的正确格式

function Greeting(greeting) {
    this.name = greeting.name;
    this.message = greeting.message;
}

代码中几乎没有错误

  • 如果希望将pushData方法保留在模型中并通过模型模式进行访问,则该方法应该是模式的一部分。如果您按照下面的方式操作,则无需导出pushData
  • GreetingSchema.methods.pushData=(问候语)=>{
    //你的代码
    }
    module.exports=mongoose.model(“问候语”,问候语模式);
    
  • 在控制器中,它将是-
  • greeting.pushData(问候语);