Я пытаюсь настроить сервер, используя express
. Причина в том, что мне придется запросить у поставщика API AIS Hub координаты широты и долготы судна. Однако запрос может быть выполнен один раз в минуту. После получения лат-лона я найду судно на гугл-карте. Я никогда не настраивал сервер, и я следовал учебному пособию, которое нашел здесь , чтобы получить пример перед тем, как применить его в своем упражнении, и следовал инструкциям на этой странице.
В папке sane моего проекта sudo npm install express
Создайте файл Server.js
внутри папки моего проекта. Файл очень короткий:
const express = require('express');
const app = express();
app.get('/hey', (req, res) => res.send('Hi Server!'));
app.listen(8080);
Теперь в той же папке я получаю доступ к package.json
и добавляю "proxy": "http://localhost:8080"
. Согласно документации это:
Это говорит React на запросы прокси API к Node.js серверу, построенному с Express.
Так что мой package.json
выглядит так :
{
"name": "my-project",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"contentful": "^7.13.1",
"express": "^4.17.1",
"express-generator": "^4.16.1",
"google-map-react": "^1.1.5",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-icons": "^3.8.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.0",
"react-select": "^3.0.8",
"reactstrap": "^8.4.0",
"styled-components": "^5.0.0",
"proxy": "http://localhost:8080"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [ ">0.2%", "not dead", "not op_mini all" ],
"development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ]
},
"devDependencies": {
"standard": "^14.3.1"
}
}
Теперь в документации написано:
Теперь запустите этот процесс Node, используя сервер узлов. js. В другом окне вы запускаете приложение CRA, используя npm start.
Поскольку у меня все в одной папке, и я sudo npm install express
, как объяснено, мне не нужно (я думаю), чтобы открыть второе окно.
Поэтому я запускаю sudo npm start
и браузер открывается на порт 3000 (по умолчанию). Отсюда я открываю инструменты разработки, как описано ниже:
1) Откройте инструменты разработки:
2) запустите команду fetch('/hey')
, поэтому из Вкладка «Консоль». Я делаю это:
3) Я go на сетевой панели, как объяснено, и должен видеть ответ Hi Server!
, но я не вижу это, под парой экран печати:
И после нажатия на hey
я получаю доступ к следующему экрану печати. Состояние кажется Ok
, но я не вижу ни одного сообщения, подтверждающего, что сервер действительно активен:
Что я пытался до сих пор :
Я пробовал разные комбинации запуска и выключения localhost:3000
.
Я пытался получить сообщение несколько раз, но, тем не менее, запрос, казалось, ожидал, несмотря на то, что после перехода на сетевую панель состояние снова кажется нормальным.
Я не понимаю, что делать , Спасибо за то, что пролили свет на возможное решение этой проблемы.