我正在做一个项目,其中我在 debian VM 9.8.0(带有最后一个 virtualbox 版本)上有一个 mongo 数据库。我的计算机上有一个 nodejs 应用程序(Windows 10),我想将此应用程序连接到我的 mongo 数据库。我尝试了很多东西,但仍然遇到相同的错误:错误:连接 ECONNREFUSED:217017
- 我试图在我的计算机和虚拟机上禁用防火墙
- 我尝试了所有可能的 VM 网络配置(目前在私有主机网络上)
- 我可以从我的计算机和从我的计算机到 VM ping 我的 VM
- 该应用程序正在本地使用 mongo 数据库
- 可能某处配置错误,代码似乎正确
- mongod 服务使用以下命令运行:sudo service mongod start
- 我可以通过使用 lsof -i 看到 mongod 处于 LISTENING 状态
nodejs 服务器:(使用“node server.js”命令启动)
var fs = require('fs');
var url = require('url');
var querystring = require('querystring');
var express = require('express');
var app = express();
//****** MONGODB *******/
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const urlMongo = 'mongodb://192.168.56.101:27017';
// Database Name
const dbName = 'projet';
// Create a new MongoClient
const client = new MongoClient(urlMongo);
错误 :
AssertionError [ERR_ASSERTION]: { Error: connect ECONNREFUSED 192.168.56.101:27017
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
errn... == null
at D:\Basile\Master Informatique\BDD\Projet\server.js:134:20
at err (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\utils.js:411:14)
at executeCallback (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\utils.js:401:25)
at err (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\operations\mongo_client_ops.js:285:21)
at connectCallback (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\operations\mongo_client_ops.js:265:5)
at server.connect (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\operations\mongo_client_ops.js:353:14)
at Server.<anonymous> (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb\lib\topologies\server.js:237:11)
at Object.onceWrapper (events.js:277:13)
at Server.emit (events.js:189:13)
at Pool.<anonymous> (D:\Basile\Master Informatique\BDD\Projet\node_modules\mongodb-core\lib\topologies\server.js:452:12)
由于该应用程序使用本地 mongo db 运行,我不明白为什么它不能在我的 VM 上运行良好。