Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 丢失模式错误:模式没有';未注册型号为“;标记器&x201D;_Javascript_Node.js_Mongoose - Fatal编程技术网

Javascript 丢失模式错误:模式没有';未注册型号为“;标记器&x201D;

Javascript 丢失模式错误:模式没有';未注册型号为“;标记器&x201D;,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,我正在从事一个使用Javascript、Node、CSS、HTML和谷歌地图的项目。 我最近遇到了这个错误=>MissingSchemaError:Schema尚未为模型“Marker”注册。我已经尽了我所能去解决它,但似乎什么都不管用 这是我的标记器的模型: const mongoose = require("mongoose"); const mongo = require("../connectors/mongo"); const Joi = require("Joi"); const

我正在从事一个使用Javascript、Node、CSS、HTML和谷歌地图的项目。 我最近遇到了这个错误=>MissingSchemaError:Schema尚未为模型“Marker”注册。我已经尽了我所能去解决它,但似乎什么都不管用

这是我的标记器的模型:

const mongoose = require("mongoose");
const mongo = require("../connectors/mongo");
const Joi = require("Joi");

const markerSchema = new mongoose.Schema(
  {
    _id: String,
    lat: { type: Number, required: true },
    lng: { type: Number, required: true },
    date: { type: Date, default: Date.now, required: false },
    pictures: { type: [String], required: true },
    user_id: { type: String, required: true }
  },
  { timestamps: true }
);

/* Create the model from the schema. */
const Marker = mongoose.model("Marker", markerSchema);
exports.Marker = Marker;
对于我的路线,我有一个文件夹routes,其中有一个文件夹标记和一个供用户使用的文件夹。 文件夹标记具有以下三个功能: 文件夹用户与此类似。 handlers.js:

const Marker = require("mongoose").model("Marker");

const find = (req, res) => {
  ...
};

...
module.exports = {
  create,
  deletion,
  find,
  findById,
  update
};
index.js:

const checkAuth = require("../../middlewares/check-auth.js");
const handlers = require("./handlers");
const validators = require("./validators");

module.exports = router => {
  router.get("/markers", checkAuth, validators.find, handlers.find);
  router.post("/markers", checkAuth, validators.create, handlers.create);
  router.get("/markers/:id", checkAuth, validators.find, handlers.findById);
  router.put("/markers/:id", checkAuth, validators.update, handlers.update);
  router.delete(
    "/markers/:id",
    checkAuth,
    validators.deletion,
    handlers.deletion
  );
  return router;
};
和validators.js

const { celebrate, Joi } = require("celebrate");

const find = celebrate({
  ...
});

...

module.exports = {
  find,
  findOne,
  create,
  update,
  deletion
};
文件夹routes还有一个index.js,其中包含:

const markers = require("./markers");
const users = require("./users");

const resourceRoutes = [markers, users];

module.exports = router => {
  resourceRoutes.forEach(routes => routes(router));
  return router;
};

关于导致问题的原因有何建议?

在模型文件的最后一行中,更改为:

module.exports = Marker
然后在逻辑文件的开头,而不是
const Marker=require(“mongoose”).model(“Marker”)只需要模型文件,如:

const Marker = require(PATH_TO_THE_MARKER_MODEL_FILE);

在模型文件的最后一行中,更改为:

module.exports = Marker
然后在逻辑文件的开头,而不是
const Marker=require(“mongoose”).model(“Marker”)只需要模型文件,如:

const Marker = require(PATH_TO_THE_MARKER_MODEL_FILE);

谢谢你的回复,我会试试这个!!谢谢你的回复,我会试试这个!!