Ошибка использования Postgres с недавно созданным приложением React: модуль не найден: не удается разрешить «dns» - PullRequest
0 голосов
/ 18 сентября 2018

Возможно, мне здесь не хватает чего-то очень очевидного, но я продолжаю получать следующую ошибку при попытке использовать Postgres из недавно созданного приложения React

Module not found: Can't resolve 'dns' in '/Users/tarek/test/node_modules/pg/lib'

Вот шаги, чтобыВоспроизвести:

  1. Создайте новое приложение React с помощью create-Reaction-app
  2. Добавьте модуль Postgres, используя npm install pg --save
  3. Добавьте следующую строку в App.js: const { Client } = require('pg');
  4. Введите npm run start, и вы получите вышеуказанную ошибку.

Что мне здесь не хватает?

** Версия узла: 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"
  }
}

1 Ответ

0 голосов
/ 18 сентября 2018

Проблема в том, что приложения React предназначены для запуска в браузере, и браузеры не могут напрямую обращаться к базам данных.Даже если бы вы нашли способ сделать это, он работал бы только локально, а не на производстве.Учтите, что если база данных находится на вашем компьютере, а ваше приложение доступно в Интернете, удаленный пользователь не сможет получить доступ к данным на вашем компьютере так, как вы описываете.

Чтобы использовать базу данных с React, вам нужно настроить сервер, возможно написанный на Node (с Express ), который будет обслуживать ваше приложение и данные для него.

Серверполучает запросы от разных пользователей и отвечает соответствующими ресурсами.Например, если они заходят на ваш сайт (например, example.com), ваш сервер должен ответить index.html для вашего проекта (в данном случае это будет index.html для вашего приложения React).Затем, чтобы получить данные из вашей базы данных, вы можете настроить API с маршрутами, такими как example.com/api/model/1, чтобы ваше реагирующее приложение могло запрашивать экземпляр model с идентификатором 1 с вашего сервера, который будет извлекать его из базы данных иотправьте его в приложение React.

Посмотрите в стек MERN (Mongo Express React Node) для более подробной информации о том, как все это работает вместе.Даже с Postgres процесс будет примерно таким же, как с Mongo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...