【发布时间】:2017-11-09 05:29:11
【问题描述】:
我正在学习 Mongo DB、Mongoose 和 Node JS,但我似乎无法将我的 Node JS 连接到本地 Mongo DB。
这是我的代码:
dbtest.js
var express = require('express');
var app = express(); // create our app w/ express
var mongoose = require('mongoose'); // mongoose for mongodb
var morgan = require('morgan'); // log requests to the console (express4)
var bodyParser = require('body-parser'); // pull information from HTML POST (express4)
var methodOverride = require('method-override'); // simulate DELETE and PUT (express4)
var options = {
useMongoClient: true,
autoIndex: false, // Don't build indexes
reconnectTries: Number.MAX_VALUE, // Never stop trying to reconnect
reconnectInterval: 500, // Reconnect every 500ms
poolSize: 10, // Maintain up to 10 socket connections
// If not connected, return errors immediately rather than waiting for reconnect
bufferMaxEntries: 0
};
var Todo = mongoose.model('Todo', {
text : String
}, 'test');
var status = {
"status": "not connected"
};
app.get('/api/todos', function(req, res) {
mongoose.connect('mongodb://127.0.0.1:27017/exampleDB',options,function(err)
{
if (err) {
res.json(status);
} else {
res.json('Connected');
}
});
});
app.listen(8080);
console.log("App listening on port 8080");
当我调用 api/todos GET 请求时,返回状态 JSON 对象,这意味着我无法连接到数据库。
我完全安装了 MongoDB Enterprise Server 3.14.10 并运行它,但我不知道为什么我的 NodeJS 应用程序无法连接。
欢迎提出任何建议。
【问题讨论】:
-
然后
res.json({ err })而不是你的res.json(status)并实际查看错误是什么。 -
这是根据您的评论更改代码后的错误:{"err":{"state":2}}
-
添加
console.log(err),该输出将显示在控制台上。将“文本”(不是屏幕截图)粘贴到您的问题中。将比您告诉任何人的内容更详细。 -
消息是:“错误:试图打开一个未关闭的连接。”然后是很多堆栈跟踪。
标签: javascript json node.js mongodb