2017-02-03 4 views
4

Meine Lebenslauf-Website ist fast fertig, ich bin gerade dabei, ein "Kontaktieren Sie mich" Formular, das mir eine E-Mail mit einigen Klartext senden sollte.Nodemailer Fehler bei Bedarf

Hier ist, was es sieht aus wie in 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: [email protected]' type='email' tabindex='2' required) 
     div 
      label 
       span Message: 
       textarea(tabindex='3' required) 
     div 
      button(name='Submit' type='submit' id='contact-submit') Send Email 

Und hier ist, wo ich die POST in meinem fangen server.js:

var express = require('express') 
       , app = express() 
var nodemailer = require('nodemailer') 

app.post('/', function(req, res) { 
}) 

Wie man sehen kann er nichts tun, aber ich empfange der folgende Fehler:

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

SyntaxError: Unexpected token ...

Das passiert nur, wenn ich require('nodemailer') obwohl es korrekt zu meinem node_modules installiert ist.

Ist das ein bekannter Fehler? Wie kann ich es beheben?

Antwort

3

Sieht aus wie eine Knotenversion Problem für mich. Der Spread-Operator ist in früheren Versionen von Node nicht gültig. Überprüfen Sie, ob Sie eine Version ausführen, die ES6-Funktionen unterstützt.

1

Node.js Version 6+ ist muss. Überprüfen Sie Ihre Node-Version mit dem folgenden Befehl ein:

Knoten --Version

Wenn Sie nicht zumindest 6+ dann müssen Sie aktualisieren.

Möglicherweise erhalten Sie eine weitere Fehlermeldung, die Sie anweist, sich bei Ihrem Konto anzumelden. Gehen Sie in diesem Fall zu Ihrem E-Mail-Posteingang und Sie erhalten eine Nachricht von Google mit einem Link zu einer Seite zum Einrichten weniger sicherer App-Berechtigungen.

1

Nodemailer ist kompatibel mit Knoten Version 6 oder höher (gemäß https://nodemailer.com/about/#requirements)

So gehen Sie wie folgt Knoten zu aktualisieren:

1 * sudo npm Cache sauber -f

2 * sudo npm installieren -gn

3 * sudo n stabil

4 * sudo ln -sf/usr/lokal/n/versions/node/5.4.1/bin/node/usr/bin/node (der fett gedruckte Text/die Version sollte in dem obigen Schritt installiert sein) .)

dh wenn 8.1.1 wird dann sudo ln tun installiert -sf/usr/local/n/Versionen/Knoten/8.1.1/bin/Knoten/usr/bin/node

node -v (Zeigt jetzt die aktualisierte Version an)

Verwandte Themen