gpt4 book ai didi

node.js - 如何同时运行客户端和服务器代码

转载 作者:行者123 更新时间:2023-12-05 02:09:26 26 4
gpt4 key购买 nike

我的客户端代码位于客户端文件夹中。我已经完成了 yarn build 来创建生产构建。

我还有一个保存 API 端点的服务器,我如何使用客户端代码的生成同时运行它们。

服务器包.json:

  "scripts": {
"client-install": "npm install --prefix client",
"start": "node server.js",
"server": "nodemon server.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"prod": "NODE_ENV=production concurrently \"npm run server\" \"npm run client\""
},

服务器.js:

// Routes
app.use("/api/users", users);

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => console.log(`Server up and running on port ${PORT} !`));

客户端package.json:

  "scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:5000",

最佳答案

当您为客户端产品执行 yarn build 时,您会使用 js 生成一些 index.html,假设在 client/build 文件夹中(您可以根据需要调整路径)。因此你不需要 npm run client,你只需要提供 html 文件。可以在定义所有路由后在 server.js 中添加处理程序,如下所示

if (['production'].includes(process.env.NODE_ENV)) {
app.use(express.static('client/build'));

const path = require('path');
app.get('*', (req, res) => {
res.sendFile(path.resolve('client', 'build', 'index.html'));
});
}

最后一步是按照以下方式更新 package.json 文件中的脚本

"prod": "NODE_ENV=production node server.js"

就是这样

关于node.js - 如何同时运行客户端和服务器代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59871910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com