我的简历网站差不多完成了,我刚刚敲定一份“联系我”表格,该表格应该给我发送一封带有明文的电子邮件。
以下是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
。
这是一个已知的错误吗?我该如何解决?
答案 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(现在应该显示更新版本)