首页 > 解决方案 > 分配架构时出现“架构路径值无效”错误

问题描述

在我的nodejs应用程序中,我在文件中定义了一个模式作为模块:

let schema_pool_jobs = new mongoose.Schema({
   task_name : String,
   params    : Object,
   status    : String,
   progress  : Number
});
module.exports.schema_pool_jobs = schema_pool_jobs;

然后在另一个文件中我“需要”这个模块并在connectToMongo函数内部使用它来将集合绑定到模式:

let schemas = require(path_to_schema_file);

let connectToMongo = () => {
   return new Promise((resolve, reject) => {
      let conn = mongoose.createConnection(CONFIG.MONGO_DB, {
         useMongoClient: true
      });
      conn.on("open", () => {
         console.log("connected");
         conn.model("pool_jobs", schemas.schema_pool_jobs, "pool_jobs");
         return resolve();
      });
      conn.on("error", error => reject(error));
   });
}

connectToMongo();

但是一旦我运行它,我就会看到

connected
TypeError: Invalid value for schema path `paths.task_name.regExp`
    at Schema.add (C:\Users\xxx\dev\project\node_modules\mongoose\lib\schema.js:383:13)
    at Schema.add (C:\Users\xxx\dev\project\node_modules\mongoose\lib\schema.js:396:14)
    at Schema.add (C:\Users\xxx\dev\project\node_modules\mongoose\lib\schema.js:396:14)
    at new Schema (C:\Users\xxx\dev\project\node_modules\mongoose\lib\schema.js:105:10)
    at NativeConnection.Connection.model (C:\Users\xxx\dev\project\node_modules\mongoose\lib\connection.js:1034:14)
    at NativeConnection.mongoose.project.on (evalmachine.<anonymous>:37:32)
    at emitNone (events.js:106:13)
    at NativeConnection.emit (events.js:208:7)
    at open (C:\Users\xxx\dev\project\node_modules\mongoose\lib\connection.js:738:11)
    at NativeConnection.Connection.onOpen (C:\Users\xxx\dev\project\node_modules\mongoose\lib\connection.js:747:5)
    at C:\Users\xxx\dev\project\node_modules\mongoose\lib\connection.js:707:11
    at C:\Users\xxx\dev\project\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:227:5
    at C:\Users\xxx\dev\project\node_modules\mongoose\node_modules\mongodb\lib\db.js:239:5
    at ReplSet.connectHandler (C:\Users\xxx\dev\project\node_modules\mongoose\node_modules\mongodb\lib\replset.js:343:7)
    at Object.onceWrapper (events.js:315:30)
    at emitOne (events.js:116:13)

我找不到任何合理的解释这意味着什么以及为什么会发生这种情况。任何想法如何解决它?

我正在使用猫鼬4.8.2

标签: javascriptmongodbmongoosemongoose-schema

解决方案


好的,我设法弄清楚发生了什么。事实证明,我在猫鼬之前创建了模式,required导致了猫鼬的大脑扭曲。一旦我第一次需要mongoose然后定义模式,一切都会好起来的。


推荐阅读