找不到模块:错误:使用 MongoDB 时无法解析“dns”

Ale*_*ell 4 javascript mongodb node.js reactjs

我是 Reactjs、Nodejs 和 MongoDB 的新手。我目前正在尝试更改 Mediums 雪花工具以将用户分数存储在数据库中。我已经通过 npm 安装了 yarn、mongodb 和 mongodb-core。它是一个单页 Web 应用程序,我认为这给我带来了麻烦。我加

var MongoClient = require('mongodb');
Run Code Online (Sandbox Code Playgroud)

SnowflakeApp.js并遇到以下错误:

找不到模块:错误:无法解析“/home/mlAHO174/snowflake/node_modules/mongodb-core/lib”中的“dns”

我试过谷歌搜索这个错误,发现它可能是一系列的事情。我不确定是因为 React 是前端而我正在尝试更改后端还是因为 mongoDB 安装不正确。我是新手,因此将不胜感激!

Jas*_*che 19

DNS 是 Node.JS 的核心模块。告诉人们他们需要通过 NPM 安装 DNS 最终会让他们拥有一个完全不同的模块来做其他事情。

https://nodejs.org/api/dns.htmlhttps://www.npmjs.com/package/dns

此错误很可能意味着您正在尝试从客户端执行需要在服务器端完成的操作。如果 MongoDB 模块找不到 DNS 组件,则它在客户端运行。

MongoDB 必须在服务器上运行。为了从 React 动态访问数据,您需要使用 Express 或 Apollo 之类的东西设置 API。


小智 16

对于在导入 clientPromise 时遇到此错误的任何人(例如在 with-mongodb 模板中):

确保您位于 /pages/ 目录中!

不适用于其他目录(例如 /components)。

(你应该休息一下或者喝点咖啡......)


Mat*_*att 8

问题是您正在尝试从前端连接到数据库。如果这可能的话,将会引发一系列的安全问题。您需要在后端设置数据库连接,然后让前端向后端发出请求来处理数据库。


NAV*_*VIN -3

欢迎来到堆栈溢出。

您需要了解和学习网络应用程序的一些基础知识。有前端、后端和它们之间的一层,以及后​​端和数据库之间的一层。前端包括react.jsangular.js浏览器上的任何其他内容。后端用于接收前端的请求,向前端提供API,并向其他API或数据库请求数据。数据库包括sqlno-sql.

如果是 NPM 模块,您遇到的错误mongodb-core.js。要么安装不正确,要么使用与您的节点版本不兼容的错误版本的模块,或者错误的 NPM 版本,或者使用未安装的另一个 NPM 模块的模块。

您的情况的问题是使用了未安装的mongodb-core模块。dns尝试使用dns安装npm i dns。或删除并mongodb-core重新安装。

  • 感谢您的帮助。问题是我试图从前端使用它,而浏览器不知道 DNS 模块。我添加了一个后端解决了这个问题! (2认同)