【发布时间】:2018-09-03 16:32:32
【问题描述】:
我有 server.js 和 db.js db.js 文件使用 Mongoose 与我的数据库交互,我使用 server.js 调用来自 db.js 的函数:
var mongoose = require('mongoose');
mongoose.connect('', { useNewUrlParser: true })
var Schema = mongoose.Schema;
module.exports = function () {
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
return db.once('open', function() {
console.log("Connected to DB")
var postschema = new Schema({
title: String,
intro: String,
body: String,
author: String,
timestamp: { type: Date, default: Date.now }
});
var post = mongoose.model('post', postschema);
return {
newPost(title, intro, body, author) {
var newpost = new post({
title: title,
intro: intro,
body: body,
author: author
})
},
getPostsAll() {
post.find({}, function (err, res) {
return (`Error:${err} Posts:${res}`)
})
}
}
})
}
我的 server.js 从db.js 调用三个函数:
var DB = require('./db.js')
var db = DB()
db.getPostsAll()
db.newPost()
我不明白为什么会出现此错误:
connection error: { MongoNetworkError: connection 4 to black-test-shard-00-01-ewyaf.mongodb.net:27017 closed
at TLSSocket.<anonymous> (E:\HTML\black-box\node_modules\mongodb-core\lib\connection\connection.js:276:9)
at Object.onceWrapper (events.js:272:13)
at TLSSocket.emit (events.js:185:15)
at _handle.close (net.js:541:12)
at TCP.done [as _onclose] (_tls_wrap.js:379:7)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
我做错了什么?我找到了an article,但什么也做不了。
【问题讨论】:
-
@SagnikPradhan 我想在这里添加一件奇怪的事情。如果我在这里错了,我不会。我添加了从命令提示符(Ipconfig 命令)获得的 IP 地址,但它不起作用。但是,当我要求集群获取我的 IP 地址时,它获取了一个不同的 IP 地址,并且成功了。如果有人能解释原因,我觉得它会为上述问题增加一些内容。
-
@vibhorvaish 这可能是您的本地 IP 地址。
标签: javascript node.js mongodb mongoose