Nodemailer错误,需要时

我的简历网站已经差不多完成了,我只是最终确定了一个“联系我”的表单,这个表单应该给我发一封纯文本的电子邮件。

这就是Jade的样子:

div.contact-email-box form(id='contact-form' action='/' method='post') h3 Contact me div label span Name: input(placeholder='eg: Mark' type='text' tabindex='1' required autofocus) div label span Email: input(placeholder='eg: mark@example.com' type='email' tabindex='2' required) div label span Message: textarea(tabindex='3' required) div button(name='Submit' type='submit' id='contact-submit') Send Email 

这里是我在我的server.js捕获POST的地方:

 var express = require('express') , app = express() var nodemailer = require('nodemailer') app.post('/', function(req, res) { }) 

正如你可以看到它没有做任何事情,但我收到以下错误:

/home/kade_c/website/node_modules/nodemailer/lib/mailer/index.js:31 compile:[(… args)=> this._convertDataImages(… args)],^^^

SyntaxError:意外的标记…

只有当我require('nodemailer')即使它正确安装到我的node_modules也会发生这种情况。

这是一个已知的错误? 我该如何解决?

看起来像一个节点版本问题给我。 扩展运算符在早期版本的Node上无效,请检查以确保您运行的是支持ES6function的版本。

Node.js版本6+是必须的。 使用以下命令检查您的节点版本:

节点 – 版本

如果你不是至less6+,那么你必须升级。

您可能会收到另一个错误消息,指示您login到您的帐户。 在这种情况下,请转到您的电子邮件收件箱,然后您会看到Google提供的一条消息,指向设置不太安全的应用权限的页面链接。

Nodemailer与Node 6或更高版本兼容(按照https://nodemailer.com/about/#requirements

因此,请按照以下步骤升级节点:

1 * sudo npm cache clean -f

2 * sudo npm install -gn

3 * sudo n稳定

4 * sudo ln -sf / usr / local / n / versions / node / 5.4.1 / bin / node / usr / bin / node (粗体文本/版本应该是以上步骤中安装的)。

即如果安装了8.1.1,则执行sudo ln -sf / usr / local / n / versions / node / 8.1.1 / bin / node / usr / bin / node

节点-v(现在应该显示更新的版本)