服务器未启动,也未接听呼叫

时间:2020-01-28 19:36:44

标签: javascript node.js reactjs express

我正在尝试使用express设置服务器。原因是我将必须向API提供者AIS Hub查询船只的经度和纬度坐标。但是,该请求可以每分钟执行一次。收到lat-lon后,我将在google-maps上找到船只。 我从未设置过服务器,我遵循的教程here包含一个示例,然后在练习中实施它并遵循该页面上的说明。

在我的项目的理智文件夹中,我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 server.js运行此Node进程。在另一个窗口中 使用npm start启动CRA应用。

因为我将所有内容都放在同一个文件夹中,所以我sudo npm install express像我解释的那样,不需要打开第二个窗口。

因此,我启动了sudo npm start,浏览器在端口3000上打开(默认情况下)。 从这里我打开开发工具,如下所述:

1)打开开发工具:

dev-tools

2)运行命令fetch('/hey'),因此从“控制台”选项卡中执行以下操作:

fetch

3)我按照说明进入网络面板,应该可以在几个打印屏幕下方看到响应Hi Server!,但看不到它:

network1

在点击hey之后,我进入以下打印屏幕。状态似乎为Ok,但我没有看到任何消息确认服务器实际上处于活动状态:

netweork2

到目前为止我尝试过的事情

我尝试了启动和关闭localhost:3000的不同组合。

我尝试多次获取该消息,但是尽管进入网络面板后,状态似乎还可以,但是请求似乎仍在等待处理。

我对做什么感到困惑。 感谢您提供解决此问题的可能方法。

0 个答案:

没有答案