需要时,Nodemailer错误

时间:2017-02-03 17:09:36

标签: javascript node.js nodemailer

我的简历网站差不多完成了,我刚刚敲定一份“联系我”表格,该表格应该给我发送一封带有明文的电子邮件。

以下是Jade的样子:

div.contact-email-box
    form(id='contact-form' action='/' method='post')
        h3 Contact me
        div
            label
                span Name:
                input(placeholder='e.g: Mark' type='text' tabindex='1' required autofocus)
        div
            label
                span Email:
                input(placeholder='e.g: 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

在这里,我抓住POST中的server.js

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               编译:[(... args)=> this._convertDataImages(参数... args)],                          ^^^

     

SyntaxError:意外的令牌......

仅当我require('nodemailer')时才会发生这种情况,即使它已正确安装到我的node_modules

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

node --version

如果你不是至少6岁以上,那么你必须升级。

您可能会收到另一条错误消息,指示您登录自己的帐户。在这种情况下,请转到您的电子邮件收件箱,您会看到来自Google的消息,其中包含指向设置不太安全的应用权限的页面的链接。

答案 2 :(得分:1)

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

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

1 * sudo npm cache clean -f

2 * sudo npm install -g n

3 * sudo n stable

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

node -v(现在应该显示更新版本)