Node.js应用在Firebase上无法正常运行

我想我在这里错过了很简单的事情。 我有一个简单的node.js应用程序,使用nodemailer将任何表单数据通过电子邮件发送到我的收件箱。

我的index.js文件:

var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var nodemailer = require('nodemailer'); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'myemail@gmail.com', pass: 'mypassword' } }); app.use(express.static('public')); //public folder with my html files app.get('', function (req, res) { res.sendFile(__dirname + "/"); }) app.post('/', function (req, res) { response = { name: req.body.name, email: req.body.email, message: req.body.message }; var mailClient = { from: 'myemail@gmail.com', to: 'myemail@gmail.com', subject: `Message from ${response.name}`, text: 'MyMessage' }; transporter.sendMail(mailClient, function (error, info) { if (error) { console.log(error); //not happening } else { res.redirect("/success.html"); //also not happening } }); }) var server = app.listen(80, function () { var host = server.address().address var port = server.address().port console.log("App listening at http://%s:%s", host, port) }) 

当我在本地机器上使用npm start在根目录中运行这个时,应用程序在localhost上运行得非常好。 Nodemailer正常工作; 当我提交时,我的表单数据通过电子邮件发送给我自己,然后redirect到我的成功页面。

但是,当我将其部署到Firebase时,似乎nodemailer部分不起作用。 页面加载我的静态文件,但是当我尝试通过表单提交任何东西时,页面只是刷新(就像当你有一个提交button与裸html),而不是redirect到我的成功页面和电子邮件数据。

有什么我需要改变我的代码,使其与Firebase的工作?

编辑 – 没有日志: 在这里输入图像描述

Google需要付费帐户才能使用“出站networking”。 免费套餐不允许您拨打外拨电话。 这包括将邮件发送到远程邮件服务器(如发送电子邮件到Yahoo,Gmail或Outlook帐户)。

查看他们的定价页面获取更多信息。

寻找“出站networking”。

如果您想要利用Gmail的API,则仍然可以使用具有nodemailerfunction的nodemailer ,并实现您要查找的内容并保留在免费nodemailerfirebase-samples存储库中已经有一个完整的工作示例! 我想强调一下链接的教程提到了什么,Gmail有一个你应该知道的电子邮件发送配额 。

Interesting Posts