TypeError:nodemailer.createTransport不是一个函数

我正在尝试在我的nodejs应用程序中实施nodemailer来发送电子邮件。

这是我的代码

var express = require('express'); var nodemailer = require('node-mailer'); var app = express(); app.post('/contact/send', function(req, res) { var transporter = nodemailer.createTransport({ service: 'Gmail', auth: { user: 'myEmailIdHere', pass: 'myPassword' } }); var mailOptions = { from: 'myName <myEmailIdHere>', to: 'myOtherEmailIdHere', subject: 'Website Submission', text: 'You have a submission with the following details... Name: ' + req.body.name + ' Email: ' + req.body.email + ' Message: ' + req.body.message, html: '<p>You have a submission with the following details...</p><ul><li>Name: ' + req.body.name + '</li><li>Email: ' + req.body.email + '</li><li>Message: ' + req.body.message + '</li></ul>' }; transporter.sendMail(mailOptions, function(error, info) { if (error) { console.log(error); res.redirect('/'); } else { console.log('Message Sent: ' + info.response); res.redirect('/'); } }) 

提交表单后,我收到错误

“TypeError:nodemailer.createTransport不是一个函数”

有人可以帮我弄清楚如何使代码与nodemailer一起工作吗?

使用这个var nodemailer = require('nodemailer');

nodemailernode-mailer是两个不同的模块。 你应该使用正确的。

 var nodemailer = require('nodemailer'); 

另外,确保使用npm i来安装nodemailer

似乎你已经完成了

 npm install node-mailer --save 

这是这个库: https : //www.npmjs.com/package/node-mailer

当你试图按照这个库的说明: https : //www.npmjs.com/package/nodemailer

为你的代码工作吗

 npm install nodemailer --save 

然后需要模块

 var nodemailer = require('nodemailer') 

不要在节点邮件之间添加连字符,它是一个不同的模块。