gpt4 book ai didi

node.js - 将 Postgres 与新创建的 React 应用程序一起使用时出错 : Module not found: Can't resolve 'dns'

转载 作者:行者123 更新时间:2023-11-29 14:14:57 26 4
gpt4 key购买 nike

我可能在这里遗漏了一些非常明显的东西,但是在尝试从新创建的 React 应用程序中使用 Postgres 时,我不断收到以下错误

未找到模块:无法解析“/Users/tarek/test/node_modules/pg/lib”中的“dns”

重现步骤如下:

  1. 使用 create-react-app 创建一个全新的 React 应用
  2. 添加 Postgres模块使用 npm install pg --save
  3. 将以下行添加到App.js: const { Client } = require('pg');
  4. 键入 npm run start,您将收到上述错误。

我在这里错过了什么?

** Node 版本:v8.12.0

** package.json

{
"name": "test",
"version": "0.1.0",
"private": true,
"dependencies": {
"pg": "^7.4.3",
"react": "^16.5.1",
"react-dom": "^16.5.1",
"react-scripts": "1.1.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}

最佳答案

问题在于 React 应用程序旨在在浏览器中运行,而浏览器无法直接访问数据库。即使你确实找到了一种方法来做到这一点,它也只能在本地工作,而不是在生产环境中工作。考虑一下,如果数据库在您的机器上并且您的应用程序在 Internet 上可用,那么远程用户将无法按照您描述的方式访问您机器上的数据。

为了在 React 中使用数据库,您需要设置一个服务器——可能是用 Node 编写的(带有 Express )——它将为您的应用程序和数据提供服务。

服务器接收来自不同用户的请求并以适当的资源响应。例如,如果他们访问您的网站(例如 example.com),您的服务器应该为您的项目响应 index.html(在这种情况下,它将是您的 React 应用程序的 index.html)。然后要从您的数据库中获取数据,您可以使用 example.com/api/model/1 等路由设置 api,以便您的 React 应用程序可以请求 model 的实例> 来自您的服务器的 ID 1,它将从数据库中获取它并将其发送到 React 应用程序。

查看 MERN(Mongo Express React Node )堆栈,了解有关所有这些如何协同工作的更多详细信息。即使使用 Postgres,该过程也与使用 Mongo 几乎相同。

关于node.js - 将 Postgres 与新创建的 React 应用程序一起使用时出错 : Module not found: Can't resolve 'dns' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52378352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com