Node.js应用程序在本地运行,不在Firebase上运行

时间:2017-12-19 19:16:53

标签: javascript node.js email firebase nodemailer

我有一个非常简单的单页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')); //Folder with static pages
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: `Name: ${response.name}\nEmail: ${response.email}\nMessage:${response.message}`
    };


    transporter.sendMail(mailClient, function (error, info) {
        if (error) {
            console.log(error);
        } else {
            res.redirect("/success.html");
        }
    });
})

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本地完美无缺。但是,当我部署到Firebase时,似乎nodemailer部分不起作用。页面加载我的静态文件,但当我尝试通过表单提交任何内容时,页面只是刷新(就像你有一个带有HTML的提交按钮),而不是重定向到我的成功页面和电子邮件数据。

我已将应用程序最小化为仅部署到Firebase时保留上述问题的简单表单,并将其上传到github:https://github.com/KadinZ/FirebaseProblem。我冒昧地创建了一个在上传的应用程序中使用的测试gmail帐户,其中包含电子邮件,nodemailersampleemail @ gmail.com和密码,foopassword。因此,如果有人想下载回购并测试它,该应用程序应该工作。

我还将这个最小化的应用程序上传到firebase:https://portfolio-fe3eb.firebaseapp.com/,以显示正在发生的问题。

额外信息:我正在使用Firebase的火焰计划,而且我没有收到错误日志。

发生了什么事?

0 个答案:

没有答案