Erreur

Formulaire de Contact Node.js

Le problème exposé dans ce sujet a été résolu.

Bonjour,

https://www.youtube.com/watch?v=6HTahFLxFs8

J’ai complètement suivi le tuto mais j’obtiens une erreur qui m’empêche de continuer.

1
(C:\Users\didi\Desktop\contact\node_modules\express-mailer\lib\express-mailer.js:30:11) at C:\Users\didi\Desktop\contact\app.js:22:10 at callbacks (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:164:37) at param (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:138:11) at pass (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:145:5) at Router._dispatch (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:173:5) at Object.router [as handle] (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:33:10) at next (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\proto.js:193:15) at Object.staticMiddleware [as handle] (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\middleware\static.js:55:61) at next (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\proto.js:193:15)

Code app.js :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var express = require('express'),
swig = require('swig'),
mailer = require('express-mailer'),
path = require('path'),
app = express();


app.use(express.logger());
app.use(express.bodyParser());
app.use(express.static(path.join(__dirname, 'public')));
app.engine('html', swig.renderFile);

app.set('views', __dirname+'/views');
app.set('view engine', 'html');

app.get('/', function(req, res){
  res.render('index');
});


app.post('/contact', function(req, res, next){
  mailer.extend(app, {
    from: req.body.email,
    host: 'smtp.free.fr',
    secureConnection: false,
    port: 25,
    transportMethod: 'SMTP'
  });

  app.mailer.send('email', {
    to: 'ton@email.com',
    auth: {
            user: 'monemail@gmail.com',
            pass: 'monmdp'
        },
    subject: req.body.subject,
    message: req.body.message
  }, function(err){
    if(err){
      console.log('On a une erreur!');return;
    }
    res.send('Email envoyé');
  });
});

app.listen(3000);
console.log('App is running');

A la ligne 22, le 10ème caractère de app.js il y à apparemment une erreur, mais c’est juste une simple accolade "{" et elle se referme très bien, donc je ne vois pas pourquoi ça fait une erreur.

Merci d’avance !

+0 -0

Chouette, un nouveau topic où l’auteur veut de l’aide mais ne lit pas les réponses, du coup il suffit de remettre les mêmes messages jusqu’à ce que ça fonctionne.

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
+0 -0

Chouette, un nouveau topic où l’auteur veut de l’aide mais ne lit pas les réponses, du coup il suffit de remettre les mêmes messages jusqu’à ce que ça fonctionne.

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
victor

L’erreur est dans mon premier message… J’arrive pas à le mettre sur PLUSIEURS seule ligne.

Par hasard, tu n’utiliserais pas le smtp de free pour envoyer un mail avec gmail ?

unidan

Je ne suis pas chez free

Awoken

Bon. On va la refaire :

  • Tu utilises les serveurs de Free pour envoyer ton e-mail (ligne 24).
  • Mais t’identifies sur ces serveurs avec un compte Gmail (lignes 32 à 35).

Peu de chances que les serveurs de Free acceptent ces identifiants.

L’erreur est dans mon premier message… J’arrive pas à le mettre sur PLUSIEURS seule ligne.

Awoken

Tu ne sais pas mettre des retours à la ligne dans un message ?

+1 -0

Chouette, un nouveau topic où l’auteur veut de l’aide mais ne lit pas les réponses, du coup il suffit de remettre les mêmes messages jusqu’à ce que ça fonctionne.

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
victor

L’erreur est dans mon premier message…

Awoken

Non, dans le premier message tu nous as mis la stack trace mais tu ne nous as pas mis l’erreur.

C’est environ ce que Kje disait ici :

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
+0 -0

Par hasard, tu n’utiliserais pas le smtp de free pour envoyer un mail avec gmail ?

unidan

Je ne suis pas chez free

Awoken

Bon. On va la refaire :

  • Tu utilises les serveurs de Free pour envoyer ton e-mail (ligne 24).
  • Mais t’identifies sur ces serveurs avec un compte Gmail (lignes 32 à 35).

Peu de chances que les serveurs de Free acceptent ces identifiants.

L’erreur est dans mon premier message… J’arrive pas à le mettre sur PLUSIEURS seule ligne.

Awoken

Tu ne sais pas mettre des retours à la ligne dans un message ?

Jérôme Deuchnord

j’ai corrigé ça mais j’ai juste oublié d’edit dans mon premier message, je vais le faire.

Chouette, un nouveau topic où l’auteur veut de l’aide mais ne lit pas les réponses, du coup il suffit de remettre les mêmes messages jusqu’à ce que ça fonctionne.

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
victor

L’erreur est dans mon premier message…

Awoken

Non, dans le premier message tu nous as mis la stack trace mais tu ne nous as pas mis l’erreur.

C’est environ ce que Kje disait ici :

tu nous a mit la stack trace mais on a pas l’erreur !

Kje
victor

L’erreur c’est pas ce qui apparaît dans la console ?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Error: Application already has been extended with Express-Mailer!
    at Object.exports.extend (C:\Users\didi\Desktop\contact\node_modules\express-mailer\lib\express-mailer.js:30:11)
    at C:\Users\didi\Desktop\contact\app.js:22:10
    at callbacks (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:164:37)
    at param (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:138:11)
    at pass (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:145:5)
    at Router._dispatch (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:173:5)
    at Object.router [as handle] (C:\Users\didi\Desktop\contact\node_modules\express\lib\router\index.js:33:10)
    at next (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\proto.js:193:15)
    at Object.staticMiddleware [as handle] (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\middleware\static.js:55:61)
    at next (C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect\lib\proto.js:193:15)

`

Au passage c’est normal que ligne 22 tu écrive mailer.(...) et ligne 30 app.mailer.(...) ? Je connais pas express, et sans l’erreur c’est compliqué, mais c’est étrange, non ?

Kje

Je pense que oui. mailer.extend semble prendre app, donc je suppose que le mailer s’injecte dedans. Ensuite il est dispo par app.mailer.

Error: Application already has been extended with Express-Mailer!

Normal. T’as vu que tu extend dans ton contrôleur ? Du coup tu sais comment régler ça pour ne faire le extend qu’une seule fois.

+0 -0

Au passage c’est normal que ligne 22 tu écrive mailer.(...) et ligne 30 app.mailer.(...) ? Je connais pas express, et sans l’erreur c’est compliqué, mais c’est étrange, non ?

Kje

Je pense que oui. mailer.extend semble prendre app, donc je suppose que le mailer s’injecte dedans. Ensuite il est dispo par app.mailer.

Error: Application already has been extended with Express-Mailer!

Normal. T’as vu que tu extend dans ton contrôleur ? Du coup tu sais comment régler ça pour ne faire le extend qu’une seule fois.

victor

J’ai extend une seule fois. Comment ça se fait qu’il est lancé plusieurs fois ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte