无法连接到数据库:Mongoose / MongoDB,虚拟盒

问题描述 投票:0回答:1

上下文

MongoDB数据库在Ubuntu虚拟机(VM)上运行。

express服务器应用程序在我的主机(Windows 10)上提供目录。

此目录与VM共享。

问题

我正在尝试在本地启动express应用程序,但没有成功。

在VM端,通过mongo shell连接到数据库正常。

在主机方面,我只是使用npm start来启动该应用程序。

我需要做其他事情以便我的机器主机/应用程序可以与VM中的数据库通信吗?

我已经尝试过:

我收到此错误:

error with npm start

谢谢您的帮助

virtualbox
1个回答
0
投票

似乎您要在这里混合两件事:

  • 连接到虚拟机上的远程数据库主机
  • 也在虚拟机上运行与虚拟机上的本地数据库通信的应用程序

根据您的解释,看来您的设置看起来像这样:

+-------------------------+                      +------------------------+
|                             |                      |                           |
| Windows 10 host machine  | --  Shared folder -|    Virtual machine      |
|                             |      application   |    MongoDB running      |
|                             |                      |                           |
+-------------------------+                      +------------------------+
  • 在主机上运行npm run main时,应用程序需要使用虚拟机网络地址连接到远程数据库。与虚拟机共享文件夹没有到达数据库的报告。

  • 在本地计算机上运行npm run main时,可以使用localhost连接或虚拟机网络地址。


您的问题与npmmongodb无关,但与您的虚拟机连接设置有关。

[如果应用程序在Windows 10上运行,设置虚拟机网络并连接到数据库的最简单方法是在VirtualBox的VM设置上设置Bridge adpaterenter image description here

然后,在Ubuntu计算机的主网络接口上设置dhcp将为您提供地址。

编辑/etc/networking/interfaces然后使用service networking restart]重新启动网络>

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

使用提供的enp0s3 inet地址连接到VM的数​​据库。要获得所提供的地址,请在外壳上使用ip addr

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.