Node.js脚本未连接到localhost中的Mongodb数据库

Node.js脚本未连接到localhost中的Mongodb数据库,node.js,mongodb,Node.js,Mongodb,在创建RESTAPI时,我有以下测试代码来运行mongodb和node.js MONGO.JS var mongoose = require("mongoose"); mongoose.connect('mongodb://localhost/smartRideDb'); // create instance of Schema var mongoSchema = mongoose.Schema; // create schema var userSchema = {

在创建RESTAPI时,我有以下测试代码来运行mongodb和node.js

MONGO.JS 

var mongoose    =   require("mongoose");
mongoose.connect('mongodb://localhost/smartRideDb');
// create instance of Schema
var mongoSchema =   mongoose.Schema;
// create schema
var userSchema  = {
    "id"       : String,
    "email"    : String,
    "password" : String
};
// create model if not exists.
module.exports = mongoose.model('user',userSchema);
index.js定义为

var mongoOp =   require("./models/mongo");
var express = require('express');
var app     = express();

var bodyParser = require('body-parser');
var router     = express.Router();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({"extended" : false}));

app.use('/' , router);
var port = process.env.PORT || 3000;

/**
 * 
 * 
 * 
 */
// Generic error handler used by all endpoints.
function handleError(res, reason, message, code) 
{
  console.log("ERROR: " + reason);
  res.status(code || 500).json({"error": message});
}

/**
 * 
 * 
 * 
 */
router.get("/",function(req,res)
{
    res.json({"error" : false,"message" : "Hello World"});
});


//route() will allow you to use same path for different HTTP operation.
//So if you have same URL but with different HTTP OP such as POST,GET etc
//Then use route() to remove redundant code.

router.route("/users").get(function(req, res)
{
    var response = {};
    mongoOp.find({},function(err,data)
    {
        if(err) 
        {
            response = {"error" : true,"message" : "Error fetching data"};
        }
        else 
        {
            response = {"error" : false,"message" : data};
        }

        res.json(response);
    });
});


app.listen(port);
console.log("Listening to PORT " + port);
当我运行时,我得到了这个错误

Muhammads-MBP:Api Umar$ node index.js
Listening to PORT 3000

/Users/Umar/Desktop/Projects On List Data/Creative Studios/School Ride/Api/node_modules/mongodb/lib/server.js:242
        process.nextTick(function() { throw err; })
                                      ^
Error: connect ECONNREFUSED 127.0.0.1:27017
    at Object.exports._errnoException (util.js:890:11)
    at exports._exceptionWithHostPort (util.js:913:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1057:14)

为什么mongodb无法获取

请在应用程序之前尝试调用与mongo的连接。听着,mongoose在默认情况下会打开一个连接池来处理请求

mongoose.connect('mongodb://localhost/dbname', function(err) {
    if (err) throw err;
    app.listen(port);
    console.log("Listening to PORT " + port);
});

尝试在应用程序之前调用与mongo的连接。听着,mongoose默认情况下会打开一个连接池来处理请求

mongoose.connect('mongodb://localhost/dbname', function(err) {
    if (err) throw err;
    app.listen(port);
    console.log("Listening to PORT " + port);
});

最常见的故障排除步骤:

  • 某个地方配置的本地主机不正确,请尝试将连接字符串更改为mongodb://localhost:27017/smartRideDb.
  • 检查mongod是否在该端口运行
  • 检查是否有其他进程正在使用该端口

  • 最常见的故障排除步骤:

  • 某个地方配置的本地主机不正确,请尝试将连接字符串更改为mongodb://localhost:27017/smartRideDb.
  • 检查mongod是否在该端口运行
  • 检查是否有其他进程正在使用该端口

  • 您可能希望首先通过以下方法确保MongoDB已正确设置

  • MongoDB已成功安装()
  • 安装后在终端中运行
    mongod
    ,以运行MongoDB
  • 在另一个终端中运行
    mongo
    ,您应该可以看到类似的内容

  • 您可能希望首先通过以下方法确保MongoDB已正确设置

  • MongoDB已成功安装()
  • 安装后在终端中运行
    mongod
    ,以运行MongoDB
  • 在另一个终端中运行
    mongo
    ,您应该可以看到类似的内容


  • 你能用命令telnet到吗:
    telnet 127.0.0.1 17027
    ?Nop@thahnguyenvan,我在用mac只是好奇你是否启动了mongod服务?当我忘记打开电源时,我总是会出现这种错误。或者您可以重新启动mongo服务吗?您还可以打开一个终端,只需运行
    mongo
    ,看看您是否能够connect@ChinKang只写mongo没有找到命令。我使用的MoonGoSeMongose是连接mongoDB的JS连接器
    mongo
    是安装MongoDB时附带的CLI,因此如果安装了mongo,您应该能够在mac上运行它。您可以使用以下命令telnet to:
    telnet 127.0.0.1 17027
    ?Nop@thahnguyenvan,我正在使用mac,只是好奇您是否启动了mongod服务?当我忘记打开电源时,我总是会出现这种错误。或者您可以重新启动mongo服务吗?您还可以打开一个终端,只需运行
    mongo
    ,看看您是否能够connect@ChinKang只写mongo没有找到命令。我使用的MoonGoSeMongose是连接mongoDB的JS连接器
    mongo
    是安装MongoDB时附带的CLI,因此如果安装了mongo,您应该能够在mac上运行它如何检查mongod是否在该端口运行,如果没有,如何运行?@MuhammadUmar打开您的终端并键入
    mongo
    。查看发生了什么只需转到终端并键入
    mongo
    。默认情况下,它使用该端口,因此如果它转到mongo shell,那么您就知道mongod正在运行。否则,您可以使用
    ps-ef | grep mongo
    进行检查。如何检查mongod是否在该端口运行,如果没有,如何运行?@MuhammadUmar打开您的终端并键入
    mongo
    。查看发生了什么只需转到终端并键入
    mongo
    。默认情况下,它使用该端口,因此如果它转到mongo shell,那么您就知道mongod正在运行。否则,您可以使用ps-ef | grep mongo来检查它。好的,谢谢您的帮助,我没有专门安装mongodb,我以为moongose会这么做。谢谢,谢谢,这很有效,我没有专门安装mongodb,我以为moongose会这么做。谢谢