【发布时间】:2020-05-30 20:35:10
【问题描述】:
已解决:如果有人感兴趣,似乎 MongoDB 只是在 Windows 启动时自动启动...
我有这个函数来初始化 Mongoose 连接:
const mongoose = require('mongoose');
let db;
async function initDD(){
try {
db = await mongoose.connect('mongodb://localhost:27017/local', { useNewUrlParser: true });
} catch (error) {
console.log('mongoose error',error)//Doesn't come to this...
}
}
即使我还没有启动我的 MongoDB 服务,这个承诺也不会被拒绝。我也尝试了回调版本 - 结果相同。我显然没有运行任何 MongoDB,但 Mongoose 会“连接”,就好像没有任何问题一样。
这可能是什么问题?我有一个标准的 MongoDB 设置、最新的 Mongoose、Windows 7 和 Node 10。
编辑:“db”的记录值,当没有 MogoDB 运行时:
Mongoose {
connections:
[ NativeConnection {
base: [Circular],
collections: [Object],
models: [Object],
config: [Object],
replica: false,
options: null,
otherDbs: [],
relatedDbs: {},
states: [Object],
_readyState: 1,
_closeCalled: false,
_hasOpened: true,
plugins: [],
_listening: false,
_connectionOptions: [Object],
name: 'local',
host: 'localhost',
port: 27017,
user: undefined,
pass: undefined,
client: [MongoClient],
'$initialConnection': [Promise],
db: [Db] } ],
models: { User: Model { User } },
modelSchemas:
{ User:
Schema {
obj: [Object],
paths: [Object],
aliases: {},
subpaths: {},
virtuals: [Object],
singleNestedPaths: {},
nested: {},
inherits: {},
callQueue: [],
_indexes: [],
methods: {},
methodOptions: {},
statics: {},
tree: [Object],
query: {},
childSchemas: [],
plugins: [Array],
'$id': 1,
s: [Object],
_userProvidedOptions: {},
options: [Object],
'$globalPluginsApplied': true } },
options: { pluralization: true, [Symbol(mongoose:default)]: true },
_pluralize: [Function: pluralize],
Schema:
{ [Function: Schema]
reserved:
[Object: null prototype] {
populated: 1,
remove: 1,
validate: 1,
toObject: 1,
schema: 1,
save: 1,
modelName: 1,
get: 1,
isNew: 1,
isModified: 1,
init: 1,
errors: 1,
db: 1,
collection: 1,
removeListener: 1,
listeners: 1,
once: 1,
on: 1,
emit: 1,
prototype: 1 },
Types:
{ String: [Function],
Number: [Function],
Boolean: [Function],
DocumentArray: [Function],
Embedded: [Function: SingleNestedPath],
Array: [Function],
Buffer: [Function],
Date: [Function],
ObjectId: [Function],
Mixed: [Function],
Decimal: [Function],
Decimal128: [Function],
Map: [Function: Map],
Oid: [Function],
Object: [Function],
Bool: [Function],
ObjectID: [Function] },
ObjectId:
{ [Function: ObjectId]
schemaName: 'ObjectId',
get: [Function],
_checkRequired: [Function],
_cast: [Function: castObjectId],
cast: [Function: cast],
checkRequired: [Function] } },
model: [Function],
plugins:
[ [ [Function], [Object] ],
[ [Function], [Object] ],
[ [Function], [Object] ],
[ [Function], [Object] ] ] }
【问题讨论】:
-
你能记录下db变量的值吗?
-
检查我编辑的帖子
-
你能在终端/cmd上连接MongoDB吗?
-
我现在在我的 Windows“服务”选项卡中看到正在运行的 mongoDB。 MongoDB 是否可以自动连接?
-
请停止该服务,然后再次检查。
标签: javascript node.js mongodb mongoose