Node.js 为什么我的猫鼬模型在NPM模块中时不能访问我的数据库?
我正在使用Node、Express和Mongo构建一个API。对于我的数据建模,我使用Mongoose。我想将我的模型移动到API使用的单独节点模块,这样我也可以在其他项目中重用模型。然而,我在API中使用Mongoose数据模型时遇到了一个奇怪的问题 当我的数据模型源位于NPM模块中时,我的模型无法访问我的数据库,任何.find或.save调用都会挂起且不执行任何操作。但是,如果我的数据模型源直接存在于我的项目中,而不是在node_模块下,那么一切都很好。这是我的密码:Node.js 为什么我的猫鼬模型在NPM模块中时不能访问我的数据库?,node.js,mongodb,mongoose,npm,Node.js,Mongodb,Mongoose,Npm,我正在使用Node、Express和Mongo构建一个API。对于我的数据建模,我使用Mongoose。我想将我的模型移动到API使用的单独节点模块,这样我也可以在其他项目中重用模型。然而,我在API中使用Mongoose数据模型时遇到了一个奇怪的问题 当我的数据模型源位于NPM模块中时,我的模型无法访问我的数据库,任何.find或.save调用都会挂起且不执行任何操作。但是,如果我的数据模型源直接存在于我的项目中,而不是在node_模块下,那么一切都很好。这是我的密码: var mongoos
var mongoose = require('mongoose');
var dbURI = 'mongodb://localhost/myproject-dev'
mongoose.connect(dbURI);
mongoose.connection.on('error', console.error.bind(console, 'database connection error:'));
var productModel = require('myproject-core').models.product;
console.log(productModel);
这里的console.log显示我剪了很多东西:
{ [Function: model]
base:
{ connections: [ [Object] ],
plugins: [],
models: ...
...
db:
...
replica: false,
hosts: null,
host: null,
port: null,
user: null,
pass: null,
name: null,
options: null,
otherDbs: [],
_readyState: 0,
_closeCalled: false,
但是,如果我需要在源代码中使用完全相同的模型代码的模型
var playerModel = require('./models/player');
console.log(playerModel);
我看到:
{ [Function: model]
base:
{ connections: [ [Object] ],
plugins: [],
models: ...
...
db:
...
replica: false,
hosts: null,
host: 'localhost',
port: 27017,
user: undefined,
pass: undefined,
name: 'myproject-dev',
options: { db: [Object], auth: {}, server: [Object], replset: [Object] },
otherDbs: [],
_readyState: 2,
_closeCalled: false,
知道怎么了吗?解决了。问题是我把猫鼬列为帮助解决问题的NPM包