Javascript Heroku错误:找不到模块';nodemailer smtp传输';

Javascript Heroku错误:找不到模块';nodemailer smtp传输';,javascript,node.js,heroku,package.json,nodemailer,Javascript,Node.js,Heroku,Package.json,Nodemailer,我已经试图找到这个问题的答案,但即使我用类似的问题,它不会工作的回应 完整登录heroku 这是我的node.js代码 var express = require('express'); var path = require('path'); var app = express(); var bodyParser = require('body-parser'); var nodemailer = require("nodemailer"); var smtpTransport = requi

我已经试图找到这个问题的答案,但即使我用类似的问题,它不会工作的回应

完整登录heroku

这是我的node.js代码

var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
var nodemailer = require("nodemailer");
var smtpTransport = require('nodemailer-smtp-transport');

app.listen(process.env.PORT || 3000,function() {
    console.log("App is running" );
});




app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json());


/*app.listen(port, function() {
    console.log("App is running on port " + port);
});*/

var smtpTransport = nodemailer.createTransport(smtpTransport({
  service: 'Gmail',
  auth: {
    user: 'naomikudren@gmail.com',
    pass: '###'
  }
}));

app.post('/send-email', function(req, res) {
    var mailOptions = {
        from: '"Naomi" <naomikudren@gmail.com>', // sender address
        to: "naomikudren@gmail.com", // list of receivers
        subject: 'Request ', // Subject line
        text: "From: " + req.body.from + " To: " + req.body.to + " Date: " + req.body.date + " Time: " + req.body.time // plaintext body

    };
        smtpTransport.sendMail(mailOptions, function(error, info) {
         if (error) {
             return console.log(error);
         }
         console.log('Message sent: ' + info.response);
     });

     res.redirect("/index.html");
 });
var express=require('express');
var path=require('path');
var-app=express();
var bodyParser=require('body-parser');
var nodeEmailer=require(“nodeEmailer”);
var smtpTransport=require('nodemailer-smtp-transport');
app.listen(process.env.PORT | | 3000,函数(){
console.log(“应用程序正在运行”);
});
app.use(express.static(path.join(uu dirname,'public'));
use(bodyParser.urlencoded({extended:false}));use(bodyParser.json());
/*app.listen(端口,函数(){
console.log(“应用程序正在端口上运行”+端口);
});*/
var smtpTransport=nodemailer.createTransport(smtpTransport({
服务:“Gmail”,
认证:{
用户:'naomikudren@gmail.com',
通过:“####”
}
}));
应用程序发布(“/发送电子邮件”,功能(请求,回复){
var mailpoptions={
发件人:“'Naomi',//发件人地址
至:naomikudren@gmail.com“,//接收者列表
主题:'请求',//主题行
文本:“从:”+req.body.From+“到:”+req.body.To+“日期:”+req.body.Date+“时间:”+req.body.Time//纯文本正文
};
发送邮件(邮件选项,函数(错误,信息){
如果(错误){
返回console.log(错误);
}
console.log('发送的消息:'+信息响应);
});
res.redirect(“/index.html”);
});

我的代码中是否缺少任何内容,或者是什么原因导致我的服务器无法运行

正如我在之前的评论中指出的,您提到的错误只是之前遇到的阻止应用启动的错误的结果

(…)启动超时

这基本上意味着,启动应用程序的过程由于不同的原因而超时

在这种情况下,它找不到模块
nodemailer smtp传输
,因此您需要做的就是在
包中提供它作为
依赖项的属性。json
文件和heroku应该负责其余部分

{
    ...
    "dependencies": {
        ...
        "nodemailer-smtp-transport": "^2.7.4",
        ...
    }
    ...
}

该错误是由日志中较高位置提到的一些不同的未经处理的错误引起的-粘贴在此处的错误只是其结果。您能提供更多的日志吗,抛出错误的起始位置?这是完整的日志。在Object.module.\u扩展(…)
部分没有任何内容?尝试运行heroku logs--tail并向上滚动。找到它,它似乎找不到“nodemailer smtp transport”,但它肯定在那里。