最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何重定向端口,用于生产作出反应

运维笔记admin11浏览0评论

如何重定向端口,用于生产作出反应

如何重定向端口,用于生产作出反应

我想安装两个相同的Ubuntu的服务器上Express.js和React.js应用。这是一个运行的Plesk玛瑙,我们有很多是通过端口80上运行的虚拟主机VPS。

为了运行这些时间可持续我已经安装并运行forever,那么这些应用程序启动上的端口3000and 5000(例如)。

我执行的命令:

forever start -c "node src/server" ./ -l ./express.log
forever start -c "npm start" ./ -l ./react.log

无论是日志文件的保存什么,但不是重点。两者都运行,如以前的命令行,但这些端口。

如何重定向至少阵营端口80用于此唯一的应用程序?通常与PHP应该工作.htaccess,但我不知道对的NodeJS。

编辑:从通过快速的作出反应的应用程序的形式发送代码(与npm run build建设之前React.js伟大的工作:

该阵营组件:

sendEmail(evt) {
    evt.preventDefault();
    (async () => {
        let response = await fetch(
            `${window.location.origin}/contacto`,
            options
        );
        let data = await response.json();

        if (!data.success) {
            this.setState(
                Object.assign(this.state, {
                    error: true,
                    texto: { error: <p>{data.message}</p> },
                    alert: {
                        visible: true,
                        tipo: "alert-danger"
                    }
                })
            );
        } else {
            this.setState(
                Object.assign(this.state, {
                    error: false,
                    texto: { error: <p>{data.message}</p> },
                    alert: {
                        visible: true,
                        tipo: "alert-success"
                    }
                })
            );
            document.getElementById("formulario-contacto").reset();
        }
    })();
}

快递的东西:

// Static site init
server.use("/", express.static("build"));

server.post("/contacto", (req, res) => {
  try {
    server.mailer.send(
      "email",
      {
        to: process.env.EMAIL_FROM,
        subject: `Contacto ${req.body.asunto}`,
        body: req.body
      },
      err => {
        if (err) {
          res.send({ success: false, message: err });
        } else {
          res.send({ success: true, message: "Mensaje enviado" });
        }
      }
    );
  } catch (err) {
    res.send({ success: false, message: err });
  }
});   
回答如下:

看起来你可能要改变你怎么回事这个问题。你应该考虑建立你的阵营应用到静态输出,你再与你的Express.js应用/服务器服务。

假设您正在使用创建反应的应用程序内,您可以运行“构建”命令来创建你的静态文件。然后设置你的Express.js应用为它服务。见here上提供静态文件和here生成静态文件的详细信息您的反应程序。

另外,您也可以使用webpack或parcel构建自己的应用程序的反应,如果你没有使用科瑞反应的应用程序内。

为了得到明确的80端口您可以将端口变量设置为80或直接设置在app.listen()函数app.listen(80)

发布评论

评论列表(0)

  1. 暂无评论