带有Express的Node.js无法连接到MongoDb-错误:connect-EconRefused
如果我没有通过控制台中的mongod在端口27017上启动与mongo的连接,当我尝试启动Express server时,会出现以下错误:带有Express的Node.js无法连接到MongoDb-错误:connect-EconRefused,node.js,mongodb,nosql,Node.js,Mongodb,Nosql,如果我没有通过控制台中的mongod在端口27017上启动与mongo的连接,当我尝试启动Express server时,会出现以下错误: Error: connect ECONNREFUSED at exports._errnoException (util.js:746:11) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1000:19) 如果我在另一个shell中通过mongod连接,然后运行node ap
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1000:19)
如果我在另一个shell中通过mongod连接,然后运行node app.js,它就可以正常工作
//app.js
var express = require('express'),
app = express(),
MongoClient = require('mongodb').MongoClient;
app.route('/')
.get(function(req, res){
res.send("Hello, World!")
global.db.close();
});
MongoClient.connect('mongodb://localhost:27017/nvps', function (err , database) {
if(err) throw err;
global.db = database;
app.listen(3000, function(){
console.log('Express server started on port 3000');
});
});
为什么当我在我的机器上转到时,mongo连接没有启动?您是否在问为什么它在不运行时抛出该错误?mongod必须运行才能被节点访问。你为什么希望它在没有它的情况下工作?@laggingreflection我以为它会在通过访问时启动连接。不是这样吗?我只是误解了这是怎么回事吗?是的,你误解了。它会启动连接,但连接到什么?mongod必须运行才能处理该连接。这就像你的浏览器可以请求一个页面或启动一个连接,但除非有一个服务器在运行,否则这个请求是无效的。mongod是本例中的服务器(数据库服务器),您的节点应用程序是客户端。感谢@laggingreflect的澄清。显然,我对这件事还很陌生!