通过 npm 包共享猫鼬模型

Sharing mongoose models via npm package

我正在编写一些使用相同数据库和模式的应用程序。 我需要在所有应用程序之间共享猫鼬模型——每个应用程序都有自己的快速服务器。

我尝试创建一个模型服务器并使用 mongoose-gen npm 请求 JSON,它工作但不完全所以我必须寻找另一个解决方案。

我在这里找到了一些关于为此创建 npm 包的答案,我这样做了,但仍然缺少一些东西——我发布了包并将其导入到我的代码中,但是当我实际尝试查询模式时——什么都没有发生了,服务器 returns 500 错误:

MongooseError:操作 examples.insertOne() 缓冲在 10000 毫秒后超时。

我觉得我的包裹里少了什么东西,但我不知道是什么东西。

这是包装内含的物品:

./index.js

    const example =require("./SystemWave")
    
    module.exports.Example=example

./SystemWave.js

    const mongoose = require('mongoose')

    const systenWaveSchema = mongoose.Schema({
        timestamp: { type: Date, default: Date.now },
        subject: {type:String, require: true},
    
    })
    
    module.exports = mongoose.model('example', systenWaveSchema)

./package.json

    {
      "name": "modelsnpm",
      "version": "1.0.6",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "mongoose": "^5.11.15"
      }
    }
./node_modules

./package-lock.json

./README.md

我不知道是否应该添加数据库 URL 或其他任何内容。

更新 :

我在这里找到了另一个解决方案:

Schemas in external module not working in Node.js

但似乎return同样的错误...

最终,我想到了这个解决方案:

Schemas in external module not working in Node.js

通过对代码进行一些更改,它成功了!

我所做的修改:

const user=require('./models/user');
   
 used in the schema file
    this.models = {
        user: user
    }

希望对大家有所帮助:)