首页 > 解决方案 > mongoDB:得到错误“HostNotFound:找不到地址”和“internal/modules/cjs/loader.js:968 throw err”

问题描述

以下消息出现在我的 vscode 终端上(代码如下!)

MongoDB shell 版本 v4.0.10 连接到:mongodb://DB%5Cmongo%5Cnode_modules%5C.bin%5C:27017/test?gssapiServiceName=mongodb 2020-09-15T18:51:58.260+0800 E QUERY [js] 错误:无法连接到服务器 DB\mongo\node_modules.bin:27017,连接尝试失败:HostNotFound:找不到 DB\mongo\node_modules.bin:27017 的地址:SocketException:不知道这样的主机。:connect@src/mongo/shell/mongo.js:344:17 @(connect):2:6 异常:连接失败内部/modules/cjs/loader.js:968 throw err;

错误:在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15) 处找不到模块“C:\Users\Lim Family\Desktop\node\lecture\nodemon\bin\nodemon.js” Function.Module._load (internal/modules/cjs/loader.js:841:27) 在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) 在 internal/main/run_main_module.js: 17:47 {代码:'MODULE_NOT_FOUND',requireStack:[]}

在运行 npm start 时,它运行 package.json 中定义的“nodemon app.js”。我已将 IP 地址白名单设置为所有 IP 地址。此外,用户和连接字符串只是从 mongodb atlas 复制粘贴。

有人可以解释错误在哪里,而且对于第二个错误,找不到模块....,我创建了一个新项目并安装了所有依赖项,但那个不会消失。可能只是我,但我认为 nodemon 也没有正常运行,没有 [nodemon] 前缀

[编辑] 现在得到一个不同的错误:

MongoDB shell 版本 v4.0.10 异常:数据库名称不能有 mongodb:// 的保留字符 URL:mongodb://127.0.0.1:27017/DB%5CNew internal/modules/cjs/loader.js:968 throw err; ^

const mongoConnect = (callback) => {
  MongoClient.connect(
    "mongodb+srv://wesleynodejs:(passwordICopiedFromMongoDb)@learning.2fvkd.mongodb.net/test?retryWrites=true&w=majority"
  )
    .then((client) => {
      console.log("CONNECTED TO MONGODB");
      _db = client.db();
      callback();
    })
    .catch((err) => console.log(err));
};

标签: node.jsmongodbnodemon

解决方案


[已解决] 看到一篇关于我的第二个错误“internal/modules/cjs/loader.js:968 throw err”的帖子,解释说这是由于在不同目录中存在一些具有相同名称的 .js 文件,这些文件位于同一主目录中。

更改我的文件位置对我有用,虽然我不明白这如何神奇地解决我的连接错误!

希望这对其他人有所帮助,因为我有点困惑,几乎找不到 mongoDB 的“HostNotFound:找不到地址”


推荐阅读