我无法在 Web 浏览器中启动服务器/客户端并在项目上运行。我正在从树莓派启动(不知道这是否相关)并同时启动服务器/客户端和并发 NPM 包(一个基本的脚本包,允许您同时为两个文件夹提供服务器)。下面是我的应用的结构。
在你继续之前,我想说,我只是在寻找方向,为什么我似乎无法向我的客户提供简单的数据。服务器和客户端确实运行,我知道它们都在工作,因为数据正在服务器端处理,而客户端确实为我拥有的简单 HTML 文件提供服务器。大多数谷歌搜索都会让我只安装基本的 React 应用程序设置或其他类似选项,我希望不必让这个项目膨胀,但如果我无法解决这个问题,我会去做。
我可以指出一些事情,以帮助理解我对任何愿意的人所做的事情。我使用 NPM 的 CORS 包进行 express,但我不知道我是否需要它与内置代理我也在尝试你可以在下面看到。
我的 server.js 代码:
const app = require('./app.js');
const port = 8000;
app.listen(port, function() {
console.log('Express server listening on port ' + port);
});
我的整个应用的 package.json:
{
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"server": "nodemon server.js",
"client": "npm start --prefix client",
"start": "concurrently \"npm run server\" \"npm run client\""
},
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"concurrently": "^6.2.0",
"cors": "^2.8.5",
"dank-twitch-irc": "^4.0.2",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"express-sse": "^0.5.1",
"http-proxy-middleware": "^2.0.0",
"i2c-bus": "^5.1.0",
"motor-hat": "^2.0.10",
"onoff": "^6.0.0"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
我的客户端 server.js 代码:
const express = require('express')
const app = express()
const path = require('path')
const port = 3000
app.get('/', (req, res) => {
res.sendFile(__dirname + '/views/index.html')
})
app.listen(port, () => {
console.log(`Client running at http://localhost:${port}`)
})
我的客户端 package.json:
{
"name": "client",
"version": "1.0.0",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"express-sse": "^0.5.3",
"http-proxy-middleware": "^2.0.0",
"nodemon": "^2.0.7"
}
}
我从一些帮助站点内置到应用程序中的代理:
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/',
createProxyMiddleware({
target: 'http://localhost:8000',
changeOrigin: true,
})
);
};
如果很难理解我在这里所做的事情,请问我。我一直在努力让它启动并运行。