Node.js 如何部署ReactJs+;远程服务器上的节点应用程序?
假设我没有使用任何第三方服务,只是一个专用服务器,我该如何做呢?我想举个例子。其中有一个构建文件夹。我知道,在执行Node.js 如何部署ReactJs+;远程服务器上的节点应用程序?,node.js,reactjs,deployment,Node.js,Reactjs,Deployment,假设我没有使用任何第三方服务,只是一个专用服务器,我该如何做呢?我想举个例子。其中有一个构建文件夹。我知道,在执行npm run build之后,我可以将其内容复制粘贴到远程服务器的public_html中,但是还有一个/server文件夹正在使用节点,可能与数据库交互,不能与其余的build js一起放入 我最好的猜测是,我将npm运行build并将build文件夹的内容ftp到远程服务器上的public\u html,然后我将服务器文件夹的内容放到另一个子域上,然后ssh到服务器中,并在所述
npm run build
之后,我可以将其内容复制粘贴到远程服务器的public_html
中,但是还有一个/server
文件夹正在使用节点,可能与数据库交互,不能与其余的build js一起放入
我最好的猜测是,我将
npm运行build
并将build
文件夹的内容ftp到远程服务器上的public\u html
,然后我将服务器文件夹的内容放到另一个子域上,然后ssh到服务器中,并在所述子域中执行npm start
?或者可能将其放在public\u html
的子文件夹中。我来自php背景,习惯于香草js+php,因此非常感谢您的任何建议。首先通过运行
npm run build
然后在app.js/index.js的节点端添加这些代码行
app.use(express.static("<your_react_app_folder>/build"));
if (process.env.NODE_ENV === "production") {
const path = require("path");
app.get("/*", (req, res) => {
res.sendfile(path, resolve(__dirname, "../<your_react_app_folder>", "build", "index.html"));
});
}
app.use(express.static(“/build”);
if(process.env.NODE_env==“生产”){
常量路径=要求(“路径”);
应用程序获取(“/*”,(请求,请求)=>{
res.sendfile(路径,解析(_dirname,“../”,“build”,“index.html”);
});
}
然后将其部署到heroku/远程服务器
注意:请记住从.gitignore文件中删除/生成行是的,如果有单独的子域“服务器”、“api”或其他什么,请在远程服务器上运行该子域。构建文件夹将只是一个ui,您可以将其推送到“dashboard”和“ui”文件夹。我觉得我看到的大多数axios/fetch请求的url都是
/api/users
,而不是https://api.something.com:3000/users
查看它,我发现了这个,我想我可以将/api
子文件夹重定向到运行节点服务器的url?在这种情况下,服务器不必位于其他服务器上subdomain@Dan185这正是我们正在使用的服务器域的代理点,所以当我们在客户端为/api/用户发出请求时,它实际上是在使用axios请求和获取数据,并将其提供给react。appI将要设置一个代理,然后允许前端子域与另一子域上的api通信