如何在 firebase 托管的一台服务器中部署 nodejs 服务器(发送电子邮件)和 vuejs 应用程序

how to deploy nodejs server (that sends Email) and vuejs app in one server on firebase hosting

这听起来可能很奇怪,我知道...人们会认为我应该使用 firebase 云功能来发送邮件,是的,我这样做了,出乎意料的是,它只是停止发送,我找不到解决方案.

我在 Nodejs 中创建了一个服务器并连接我的前端以向服务器发送 POST 请求。现在我想将该服务器部署到 firebase 托管,这样服务器将与应用程序一起托管。

sendMessage() {
      if (this.$refs.formEmail.validate()) {
        this.loading = true;
        this.disabled = true;
        const data = {
          name: this.formData.name,
          email: this.formData.email,
          message: this.formData.message
        };
        axios
          .post("http://localhost:4000/sendEmail", data)
          // eslint-disable-next-line no-unused-vars
          .then(res => {
            this.disabled = false;
            this.loading = false;
            this.snackbar = true;
            this.successMessage = "Mail sent! We'll respond ASAP.";
            this.$refs.formEmail.reset();
          })
          .catch(err => {
            this.disabled = false;
            this.loading = false;
            this.snackbarError = true;
            this.errorMessage = err.message;
          });
      }
    }

所以,我有什么办法可以将该本地主机部署到 firebase,这样 post 请求就可以在不打开节点

上的服务器的情况下发送

您不能在 Firebase 托管上 运行 常规 Node.js 脚本。您可以获得的最接近的是将该脚本转换为 Cloud Functions。

许多 Node.js 应用程序都可以转换,但打开本地 post(您似乎就是这种情况)在 Cloud Functions 上不是一个好的选择。我通常会将您的 sendEmail 端点转换为 Callable or HTTPS triggered 云函数。