【问题标题】:Express server with React - This site can’t be reached使用 React 的 Express 服务器 - 无法访问此站点
【发布时间】:2019-07-30 00:36:45
【问题描述】:

我正在尝试同时运行 Express 服务器和 React 应用程序。当我使用 npm run server 时,它会启动反应服务器而不是快速服务器。如果我转到快速服务器的本地主机 ("http://localhost:3001/api/greeting"),我会收到一条消息,说“无法访问此站点”。

我按照以下说明设置服务器:https://www.twilio.com/blog/react-app-with-node-js-server-proxy

当我测试我创建的服务器时它失败了。

服务器/index.js

const express = require('express');
const bodyParser = require('body-parser');
const pino = require('express-pino-logger')();

const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(pino);

app.get('/api/greeting', (req, res) => {
  const name = req.query.name || 'World';
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify({ greeting: `Hello ${name}!` }));
});

app.listen(3001, () =>
  console.log('Express server is running on localhost:3001')
);

package.json

"devDependencies": {
    "body-parser": "^1.19.0",
    "create-cep-extension-scripts": "1.0.0-beta.29",
    "express": "^4.17.1",
    "express-pino-logger": "^4.0.0",
    "node-env-run": "^3.0.2",
    "nodemon": "^1.19.1",
    "npm-run-all": "^4.1.5",
    "pino-colada": "^1.4.5"
  },
  "scripts": {
    "start": "create-cep-extension-scripts start",
    "build": "create-cep-extension-scripts build",
    "test": "create-cep-extension-scripts test --env=jsdom",
    "eject": "create-cep-extension-scripts eject",
    "archive": "create-cep-extension-scripts archive",
    "server": "node-env-run server --exec nodemon | pino-colada"
  }

npm run server 应该启动我的 express 服务器并显示带有“Hello World!”的 JSON 响应。问候。相反,我收到的页面显示“无法访问此站点”消息。

【问题讨论】:

  • 您至少在终端中看到Express server is running on localhost:3001
  • 不,它没有记录任何东西
  • 在“无法访问此站点”下出现错误:ERR_CONNECTION_REFUSED
  • 当然,如果它甚至没有启动服务器,你将无法连接:P。确保您正确配置了所有内容。您可能需要.env 文件中的一些变量供node-env-run 使用。
  • 我关注的文章说要创建 .env 文件,但从未说明要放入什么。

标签: reactjs express twilio


【解决方案1】:

你确定你在做任何事情之前跑过npm install 吗?您的 package.json 文件似乎缺少一个外部大括号。我认为您的npm run server 命令无法运行,因为您的项目缺少node-env-runpina-coladanodemon 等依赖项。此外,您应该在项目的顶层添加一个空的.env 文件。

【讨论】:

  • 这不是我的整个 package.json - 我只是想展示我的 devDependencies 和脚本中的内容。我为所有依赖项运行了 yarn add。我在根目录有一个 .env 文件,但由于 create-react-app,它不是空的。我试过清空它,但似乎没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多