2017-02-03 5 views
4

Mon site de CV est presque terminé, je suis en train de finaliser un formulaire "Contactez-moi" qui devrait m'envoyer un e-mail avec du texte brut.Erreur de Nodemailer si nécessaire

est ici à quoi il ressemble dans 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 

Et voici où je prends la POST dans mon server.js:

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

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

Comme vous pouvez le voir ne fait rien, mais je reçois l'erreur suivante:

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

SyntaxError: Unexpected token ...

Cela se produit uniquement lorsque I require('nodemailer') même s'il est correctement installé sur mon node_modules.

Est-ce un bug connu? Comment puis-je le réparer?

Répondre

3

Cela ressemble à un problème de version de noeud pour moi. L'opérateur de propagation n'est pas valide sur les versions antérieures de Node, vérifiez que vous exécutez une version qui prend en charge les fonctionnalités ES6.

1

La version 6+ de Node.js est obligatoire. Vérifiez votre version de noeud avec la commande suivante:

noeud

--version

Si vous n'êtes pas au moins 6+ alors vous devez mettre à niveau.

Vous pouvez recevoir un autre message d'erreur vous demandant de vous connecter à votre compte. Dans ce cas, accédez à votre boîte de réception électronique et vous verrez un message de Google avec un lien vers une page pour configurer des autorisations moins sécurisées.

1

Nodemailer est compatible avec nœud version 6 ou plus (selon https://nodemailer.com/about/#requirements)

donc procédez comme suit pour mettre à niveau le noeud:

1 * sudo NPM cache propre -f

2 * sudo NPM installer -gn

3 * n stable

sudo

4 * sudo ln -sf /usr/local/n/ versions/node/5.4.1/bin/noeud/usr/bin/noeud (le texte/la version en gras doit être celui installé lors de l'étape ci-dessus .)

ie si 8.1.1 est installé puis faire sudo Dans -sf/usr/local/n/versions/node/8.1.1/bin/node/usr/bin/noeud

node -v (Doit montrer la version mise à jour maintenant)