带有Express的Node.js无法连接到MongoDb-错误:connect-EconRefused

带有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

如果我没有通过控制台中的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 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的澄清。显然,我对这件事还很陌生!