0
我在使用vagrant的virtualbox中運行我的mongodb。我正嘗試使用node.js連接到主機上的數據庫,但嘗試這樣做時會出現奇怪的錯誤。這是我正在運行的代碼。在使用node.js連接到VM中的mongodb時發生錯誤
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:6600/test";
MongoClient.connect(url, function(err, db){
if (err){
throw err;
}
console.log("Database created!");
db.close();
});
這是在命令行中顯示的錯誤。
C:\Users\Morgan\Desktop\testingGrounds>node createMongoDB.js
C:\Users\Morgan\Desktop\testingGrounds\node_modules\mongodb\lib\mongo_client.js:421
throw err
^
[object Object]
這是Vagrantfile的相關部分。
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
# nginx
config.vm.network "forwarded_port", guest: 80, host: 6600
# # development site
config.vm.network "forwarded_port", guest: 3000, host: 6660
# db browser port
config.vm.network "forwarded_port", guest: 7474, host: 6666
# test port
config.vm.network "forwarded_port", guest: 8800, host: 6606
有可能是一個更具體的錯誤,你沒有顯示,或者你應該嘗試'console.error(err)'而不是爲了更好地看到它,如果不。但config.vm.network「forwarded_port」,guest:3000,host:6660'似乎表示你正在從端口'80'轉發到你本地的'6600',而MongoDB默認在端口'27017'上運行。所以除非你專門將它分配給端口'80'(並且你可能沒有),否則你連接到錯誤的端口,甚至基本上設置了錯誤的端口轉發。 –