猫鼬无法在没有互联网的情况下连接

Mongoose Can't Connect Without Internet

我的 MongoDB 服务器 运行 正在 localhost:27017 上运行,虽然我通常可以 运行 我的 Node.js 应用正常,但当我断开连接时来自互联网 Mongoose 抛出错误

Error: failed to connect to [localhost:27017]

请注意,我仍然可以从 Mongo shell 客户端连接到 MongoDB 服务器。此外,如果我先启动我的应用程序然后断开互联网连接,我的应用程序可以离线访问数据库。那么为什么没有网络就无法启动呢?

编辑:这里是完整的错误

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: failed to connect to [localhost:27017]
    at null.<anonymous> (<My App>\node_modules\mongoose\
node_modules\mongodb\lib\mongodb\connection\server.js:555:74)
    at emit (events.js:118:17)
    at null.<anonymous> (<My App>\node_modules\mongoose\
node_modules\mongodb\lib\mongodb\connection\connection_pool.js:156:15)
    at emit (events.js:110:17)
    at Socket.<anonymous> (<My App>\node_modules\mongoos
e\node_modules\mongodb\lib\mongodb\connection\connection.js:534:10)
    at Socket.emit (events.js:107:17)
    at net.js:923:16
    at process._tickCallback (node.js:355:11)
[nodemon] app crashed - waiting for file changes before starting...

编辑:措辞

使用 127.0.0.1 而不是本地主机。通过关闭您的 wifi 接口,OS 不再能够解析本地主机。

考虑 node-offline-localhost

在破解代码前添加:

require('node-offline-localhost').always();

而且它(希望如此)有效,至少在 RFC 3493 gets fixed 之前是这样。

完全披露:我编写这个包是为了在离线时简化我的开发环境中的 https。