簡體   English   中英

連接到mongodb時出錯

[英]Error when connecting to mongodb

我正在使用node-run-cmd包在我的app.js文件中啟動mongodb服務器。 我知道這是可行的,因為我可以在運行腳本時在Robomongo上看到集合,也可以在運行進程列表中查看mongod.exe。 問題是試圖連接到名為testDB的數據庫。 下面是注釋的代碼。

//start mongodb server
//this works
var nrc = require('node-run-cmd');
var cmd = '..\\mongodb\\mongod --dbpath '+__dirname+'\\db';
nrc.run(cmd);

//setup
var express = require('express');
var MongoClient = require('mongodb').MongoClient;
var app = express();
app.use(express.static('public'));
app.set('view engine', 'ejs');

//connect to mongo
//this fails to connect to db testDB
var url = 'mongodb://localhost:27017/testDB';
MongoClient.connect(url, function(err, db) {
   if(!err) {
      console.log("connection successful");
   }
   else{
       console.log(err.message)
   }
});

這是err.message

failed to connect to server [localhost:27017] on first connect

任何想法我在這里做錯了。 我的假設是數據庫連接在服務器完全啟動之前正在嘗試,但是我不確定。

編輯:

這就是時機問題。 我嘗試了以下內容,並將其連接到數據庫。 除了我在這里擁有的以外,還有沒有其他優雅的方式可以做到這一點?

function connect(){
   var url = 'mongodb://localhost:27017/testDB';
   MongoClient.connect(url, function(err, db) {
      if (!err) {
         console.log("connection successful");
      }
      else {
         console.log(err.message)
      }

   });
}
setTimeout(connect, 10000);

您應該在node_run_cmd包中使用回調( https://www.npmjs.com/package/node-run-cmd#callback-style )。

將您的connect函數放在回調中。

您可能還希望只在這里開始表達。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM