【问题标题】:Sharing mongoose models via npm package通过 npm 包共享 mongoose 模型
【发布时间】:2021-02-11 17:37:45
【问题描述】:

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

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

我在这里找到了一些关于为此创建 npm 包的答案,我这样做了,但仍然缺少一些东西 - 我发布了包并将其导入到我的代码中,但是当我实际尝试查询架构时 - 什么也没发生,服务器返回 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

但它似乎返回相同的错误...

【问题讨论】:

  • 可以分享一下mongdb连接的代码吗?您的 mongo 连接似乎有问题,或者您的端口未在防火墙中打开。
  • @ApoorvaChikara mongodb 连接在消费者应用程序服务器中,就好像在那里声明了架构一样。
  • 我知道如何将我的服务器连接到猫鼬。问题在于与定义外部模型的外部 npm 包连接。我不确定我是否应该在外部包或消费者应用程序中具有连接 URL。 @ApoorvaChikara

标签: node.js express mongoose mongoose-schema npm-publish


【解决方案1】:

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

Schemas in external module not working in Node.js

对代码稍作改动,就成功了!

我所做的更改:

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

希望对大家有帮助:)

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 2012-09-27
    • 2014-02-21
    • 2011-11-11
    • 2016-07-02
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多