Node js客户端和服务器无法连接

时间:2021-06-21 12:46:23

标签: node.js express raspberry-pi web-development-server

我无法在 Web 浏览器中启动服务器/客户端并在项目上运行。我正在从树莓派启动(不知道这是否相关)并同时启动服务器/客户端和并发 NPM 包(一个基本的脚本包,允许您同时为两个文件夹提供服务器)。下面是我的应用的结构。

在你继续之前,我想说,我只是在寻找方向,为什么我似乎无法向我的客户提供简单的数据。服务器和客户端确实运行,我知道它们都在工作,因为数据正在服务器端处理,而客户端确实为我拥有的简单 HTML 文件提供服务器。大多数谷歌搜索都会让我只安装基本的 React 应用程序设置或其他类似选项,我希望不必让这个项目膨胀,但如果我无法解决这个问题,我会去做。

我可以指出一些事情,以帮助理解我对任何愿意的人所做的事情。我使用 NPM 的 CORS 包进行 express,但我不知道我是否需要它与内置代理我也在尝试你可以在下面看到。

My file structure is as such

我的 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,
    })
  );
};

如果很难理解我在这里所做的事情,请问我。我一直在努力让它启动并运行。

0 个答案:

没有答案