【发布时间】: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 文件,但从未说明要放入什么。