Erreur

Formulaire de Contact Node.js

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

A en juger, le problème viendrait de connect, je me demande bien pourquoi tu en as besoin. Et je suis d’autant plus surpris que tu n’es pas eu ce problème avant avec logger et body-parser. Car depuis express et ces middlewares sont des packages séparés, à moins que je ne dise des bêtises.

Fais déjà voir ton code actuel

azeupaul
 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
48
const express = require('express'),
swig = require('swig'),
mailer = require('express-mailer'),
path = require('path'),
app = express();

  mailer.extend(app, {
  secureConnection: false,
  transportMethod: 'SMTP',
  auth: {
    user: 'monemail@gmail.com',
    pass: 'monmdp'
  }
});

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){

    app.mailer.send('email', {
    to: 'awoken(cfaux)@email.com',
    from: req.body.email,
    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');
  1. Je sais que je me répète énormément sur chacun de tes topics mais bon. Indente ton code.
  2. Tu vois à la ligne 37 ? Tu penses que err contient quoi ?
victor

Bah l’erreur. Et l’indentation je la trouve bien sur mon éditeur de texte (VSC) après, je sais pas si elle change sur zds

+0 -0
  1. Je sais que je me répète énormément sur chacun de tes topics mais bon. Indente ton code.
  2. Tu vois à la ligne 37 ? Tu penses que err contient quoi ?
victor

Bah l’erreur. Et l’indentation je la trouve bien sur mon éditeur de texte (VSC) après, je sais pas si elle change sur zds

Awoken

Je crois que Victor veut dire console.log(err) mais je ne suis pas sûr :)

  1. Je sais que je me répète énormément sur chacun de tes topics mais bon. Indente ton code.
  2. Tu vois à la ligne 37 ? Tu penses que err contient quoi ?
victor

Bah l’erreur. Et l’indentation je la trouve bien sur mon éditeur de texte (VSC) après, je sais pas si elle change sur zds

Awoken

Je crois que Victor veut dire console.log(err) mais je ne suis pas sûr :)

unidan

Bah, console.log(err) veut dire : dans la console, on affiche l’erreur.

  1. Je sais que je me répète énormément sur chacun de tes topics mais bon. Indente ton code.
  2. Tu vois à la ligne 37 ? Tu penses que err contient quoi ?
victor

Bah l’erreur.

Oui. Il faut l’utiliser. Une erreur signifie qu’il y a une erreur. S’il y a une erreur tu veux probablement savoir quelle est l’erreur. Pour savoir quelle est l’erreur, "console.log(’on a une erreur’)" ne fonctionne pas.

@unidan: console.error

Et l’indentation je la trouve bien sur mon éditeur de texte (VSC) après, je sais pas si elle change sur zds

Awoken

Mais c’est pas grave si tu es non-voyant, par contre il vaut mieux nous le dire ! Comme ça nous on s’énerve pas quand on te montre un truc en pensant que tu es voyant. Désolé :)

+0 -0
  1. Je sais que je me répète énormément sur chacun de tes topics mais bon. Indente ton code.
  2. Tu vois à la ligne 37 ? Tu penses que err contient quoi ?
victor

Bah l’erreur.

Oui. Il faut l’utiliser. Une erreur signifie qu’il y a une erreur. S’il y a une erreur tu veux probablement savoir quelle est l’erreur. Pour savoir quelle est l’erreur, "console.log(’on a une erreur’)" ne fonctionne pas.

@unidan: console.error

Et l’indentation je la trouve bien sur mon éditeur de texte (VSC) après, je sais pas si elle change sur zds

Awoken

Mais c’est pas grave si tu es non-voyant, par contre il vaut mieux nous le dire ! Comme ça nous on s’énerve pas quand on te montre un truc en pensant que tu es voyant. Désolé :)

victor

Je suis pas mal-voyant (et d’ailleurs rien contre ceux qui le sont). Mais y’a pas spécialement de "tuto" comment bien indenter son code, enfin y’a des sites etc mais je préfère apprendre par moi même, je serais plus autonome par la suite

Et j’aurais pensais qu’il fallait faire un console.log(err)

EDIT : victor, pourquoi tu dislike mon message ? Parce que j’ai dis que j’étais pas mal-voyant ? Ou que je pensais faire un console.log(err) ?

Je suis ici pour apprendre, si t’es là c’est pour m’aider pas autres chose, si tu veux pas m’aider tu peux leave ce sujet, je t’ai jamais forcé à rester ici…

+0 -1

Alors, tout fonctionne mais lorsque j’envoies le message, la page localhost:3000/contact n’est pas reconnue.

Voici tout ce qui se passe dans la console :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
C:\Users\didi\Desktop\contact>node app.js
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
App is running

TypeError: Cannot create property 'reconnectCount' on boolean 'false'
    at SMTPClient._actionAUTHComplete (C:\Users\didi\Desktop\contact\node_modules\express-mailer\node_modules\nodemaile
r\node_modules\simplesmtp\lib\client.js:873:34)
    at SMTPClient._onData (C:\Users\didi\Desktop\contact\node_modules\express-mailer\node_modules\nodemailer\node_modul
es\simplesmtp\lib\client.js:343:29)
    at emitOne (events.js:115:13)
    at TLSSocket.emit (events.js:210:7)
    at addChunk (_stream_readable.js:252:12)
    at readableAddChunk (_stream_readable.js:239:11)
    at TLSSocket.Readable.push (_stream_readable.js:197:10)
    at TLSWrap.onread (net.js:589:20)
:1 - - [Thu, 27 Jul 2017 19:52:37 GMT] "GET / HTTP/1.1" 200 2251 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWe bKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" ::1 - - [Thu, 27 Jul 2017 19:52:37 GMT] "GET /css/bootstrap.css HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 ( Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" ::1 - - [Thu, 27 Jul 2017 19:52:37 GMT] "GET /favicon.ico HTTP/1.1" 404 - "http://localhost:3000/" "Mozilla/5.0 (Window s NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" C:\Users\didi\Desktop\contact\node_modules\express-mailer\node_modules\nodemailer\node_modules\simplesmtp\lib\client.js :873 this._xoauth2.reconnectCount = 0; ^

EDIT : J’ai essayé de changé app.post en app.get, mais visiblement cela ne fonctionne pas "Cannot POST /contact"

+0 -0

Parfois quand on stagne trop et que l’on ne sait de quel côté chercher, mieux vaut se calmer et regarder depuis la source. Ceci dit je te propose de vérifier:

  • ta version de node/npm
  • la version de express que tu utilises, parce que comme je le disais bodyParser n’est plus un middleware interne d’express mais séparé donc à inclure (via un require)
+0 -0

Parfois quand on stagne trop et que l’on ne sait de quel côté chercher, mieux vaut se calmer et regarder depuis la source. Ceci dit je te propose de vérifier:

  • ta version de node/npm
  • la version de express que tu utilises, parce que comme je le disais bodyParser n’est plus un middleware interne d’express mais séparé donc à inclure (via un require)
azeupaul

Alors, la version de Node que j’ai est la 8.2.1 Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Awoken

Juste une recherche Google à faire. Une. "npm package version"

:|

tleb

En faisant ça j’ai trouvé la version de node, pas de express

+0 -0

Parfois quand on stagne trop et que l’on ne sait de quel côté chercher, mieux vaut se calmer et regarder depuis la source. Ceci dit je te propose de vérifier:

  • ta version de node/npm
  • la version de express que tu utilises, parce que comme je le disais bodyParser n’est plus un middleware interne d’express mais séparé donc à inclure (via un require)
azeupaul

Alors, la version de Node que j’ai est la 8.2.1 Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Awoken

Avec un npm list dans le dossier de ton projet, tu as une liste des packages installés accompagnés de leur version

+0 -0

Parfois quand on stagne trop et que l’on ne sait de quel côté chercher, mieux vaut se calmer et regarder depuis la source. Ceci dit je te propose de vérifier:

  • ta version de node/npm
  • la version de express que tu utilises, parce que comme je le disais bodyParser n’est plus un middleware interne d’express mais séparé donc à inclure (via un require)
azeupaul

Alors, la version de Node que j’ai est la 8.2.1 Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Awoken

Avec un npm list dans le dossier de ton projet, tu as une liste des packages installés accompagnés de leur version

azeupaul

J’ai aussi plein d’erreur :

 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
+-- express@3.4.8
| +-- buffer-crc32@0.2.1 extraneous
| +-- commander@1.3.2 extraneous
| +-- connect@2.12.0 extraneous
| +-- cookie@0.1.0 extraneous
| +-- cookie-signature@1.0.1 extraneous
| +-- debug@0.7.4 extraneous
| +-- fresh@0.2.0 extraneous
| +-- merge-descriptors@0.0.1 extraneous
| +-- methods@0.1.0 extraneous
| +-- mkdirp@0.3.5 extraneous
| +-- range-parser@0.0.4 extraneous
| `-- send@0.1.4 extraneous
+-- express-mailer@0.2.2
| `-- nodemailer@0.6.0 extraneous
`-- swig@1.3.2
  +-- optimist@0.6.1 extraneous
  `-- uglify-js@2.4.12 extraneous

npm ERR! extraneous: buffer-crc32@0.2.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\buffer-crc32
npm ERR! extraneous: commander@1.3.2 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\commander
npm ERR! extraneous: connect@2.12.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect
npm ERR! extraneous: cookie@0.1.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\cookie
npm ERR! extraneous: cookie-signature@1.0.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\cookie-sign
ature
npm ERR! extraneous: debug@0.7.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\debug
npm ERR! extraneous: fresh@0.2.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\fresh
npm ERR! extraneous: merge-descriptors@0.0.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\merge-desc
riptors
npm ERR! extraneous: methods@0.1.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\methods
npm ERR! extraneous: mkdirp@0.3.5 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\mkdirp
npm ERR! extraneous: range-parser@0.0.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\range-parser
npm ERR! extraneous: send@0.1.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\send
npm ERR! extraneous: nodemailer@0.6.0 C:\Users\didi\Desktop\contact\node_modules\express-mailer\node_modules\nodemailer

npm ERR! extraneous: optimist@0.6.1 C:\Users\didi\Desktop\contact\node_modules\swig\node_modules\optimist
npm ERR! extraneous: uglify-js@2.4.12 C:\Users\didi\Desktop\contact\node_modules\swig\node_modules\uglify-js

EDIT : Je pense que le plus important ici c’est :

1
+-- express@3.4.8

donc je pense que la version d’express est la 3.4.8 :)

+0 -0

J’ai aussi plein d’erreur :

 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
+-- express@3.4.8
| +-- buffer-crc32@0.2.1 extraneous
| +-- commander@1.3.2 extraneous
| +-- connect@2.12.0 extraneous
| +-- cookie@0.1.0 extraneous
| +-- cookie-signature@1.0.1 extraneous
| +-- debug@0.7.4 extraneous
| +-- fresh@0.2.0 extraneous
| +-- merge-descriptors@0.0.1 extraneous
| +-- methods@0.1.0 extraneous
| +-- mkdirp@0.3.5 extraneous
| +-- range-parser@0.0.4 extraneous
| `-- send@0.1.4 extraneous
+-- express-mailer@0.2.2
| `-- nodemailer@0.6.0 extraneous
`-- swig@1.3.2
  +-- optimist@0.6.1 extraneous
  `-- uglify-js@2.4.12 extraneous

npm ERR! extraneous: buffer-crc32@0.2.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\buffer-crc32
npm ERR! extraneous: commander@1.3.2 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\commander
npm ERR! extraneous: connect@2.12.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\connect
npm ERR! extraneous: cookie@0.1.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\cookie
npm ERR! extraneous: cookie-signature@1.0.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\cookie-sign
ature
npm ERR! extraneous: debug@0.7.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\debug
npm ERR! extraneous: fresh@0.2.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\fresh
npm ERR! extraneous: merge-descriptors@0.0.1 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\merge-desc
riptors
npm ERR! extraneous: methods@0.1.0 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\methods
npm ERR! extraneous: mkdirp@0.3.5 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\mkdirp
npm ERR! extraneous: range-parser@0.0.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\range-parser
npm ERR! extraneous: send@0.1.4 C:\Users\didi\Desktop\contact\node_modules\express\node_modules\send
npm ERR! extraneous: nodemailer@0.6.0 C:\Users\didi\Desktop\contact\node_modules\express-mailer\node_modules\nodemailer

npm ERR! extraneous: optimist@0.6.1 C:\Users\didi\Desktop\contact\node_modules\swig\node_modules\optimist
npm ERR! extraneous: uglify-js@2.4.12 C:\Users\didi\Desktop\contact\node_modules\swig\node_modules\uglify-js
Awoken

Tu dois avoir remarqué la présence de ’extraneous’, cela indique que ce sont des dépendances étrangères. Tu peux les retirer à coup de npm prune [package], mais cela ne fonctionnera que si tu as un fichier package.json à la racine de ton projet.

EDIT : Je pense que le plus important ici c’est :

1
+-- express@3.4.8

donc je pense que la version d’express est la 3.4.8 :)

Awoken

Ok. Et qu’est ce que cela t’apprend? Que tu n’utilises pas la dernière version d’express et des autres packages aussi.

Peut-être ce serait la cause de tous tes maux, mais ce n’est que mon avis. Je te conseillerais donc de passer aux dernières versions de tes différents packages (tu auras probablement plus de facilité à travailler)

+1 -0

Ok. Et qu’est ce que cela t’apprend? Que tu n’utilises pas la dernière version d’express et des autres packages aussi.

Peut-être ce serait la cause de tous tes maux, mais ce n’est que mon avis. Je te conseillerais donc de passer aux dernières versions de tes différents packages (tu auras probablement plus de facilité à travailler)

azeupaul

Je connais pas d’autres commandes que npm install express. Je vais continuer mes recherches pour voir si j’en trouve une.

EDIT : J’ai réussi, désormais la version de express est la 4.15.3 Mais cela ne change pas, j’ai toujours une erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
C:\Users\didi\node_modules\express\lib\express.js:107
      throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed sepa
rately. Please see https://github.com/senchalabs/connect#middleware.');
      ^

Error: Most middleware (like logger) is no longer bundled with Express and must be installed separately. Please see htt
ps://github.com/senchalabs/connect#middleware.
    at Function.get (C:\Users\didi\node_modules\express\lib\express.js:107:13)
    at Object.<anonymous> (C:\Users\didi\Desktop\vraicontact\app.js:14:16)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Function.Module.runMain (module.js:605:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:575:3

code:

 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
const express = require('express'),
    swig = require('swig'),
    mailer = require('express-mailer'),
    path = require('path'),
    app = express();
mailer.extend(app, {
    secureConnection: false,
    transportMethod: 'SMTP',
    auth: {
        user: 'monemail@gmail.com',
        pass: 'monmdp'
    }
});
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.get('/contact', function(req, res, next) {
    app.mailer.send('email', {
        to: 'awoken@hotmail.com',
        from: req.body.email,
        subject: req.body.subject,
        message: req.body.message
    }, function(err) {
        if (err) {
            console.log(err);
            return;
        }
        res.send('Email envoyé');
    });
});
app.listen(3000);
console.log('App is running');

En plus de cela, lorsque je fais npm list, désormais ça me fait :

1
npm prune [package]
+0 -1

L’erreur est clair : Tu utilise ton code comme si logger faisait partit d’express mais il te dis qu’il n’est plus intégré. Il faut que tu l’installe (et probablement l’initialiser).

Kje

Mais, express est déjà installé. Pourtant j’ai bien fait la commande npm install express –save

L’erreur est clair : Tu utilise ton code comme si logger faisait partit d’express mais il te dis qu’il n’est plus intégré. Il faut que tu l’installe (et probablement l’initialiser).

Kje

Mais, express est déjà installé. Pourtant j’ai bien fait la commande npm install express –save

Awoken

Je ne fais que te repeter depuis hier que logger n’est plus interne à express, mais un middleware à part, même chose pour bodyParser

+0 -0

L’erreur est clair : Tu utilise ton code comme si logger faisait partit d’express mais il te dis qu’il n’est plus intégré. Il faut que tu l’installe (et probablement l’initialiser).

Kje

Mais, express est déjà installé. Pourtant j’ai bien fait la commande npm install express –save

Awoken

Je ne fais que te repeter depuis hier que logger n’est plus interne à express, mais un middleware à part, même chose pour bodyParser

azeupaul

Je l’ai retenu ça. Middleware veut dire en gros est une application qui fait des échanges de données avec d’autres applications ?

+0 -0

Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Awoken

Juste une recherche Google à faire. Une. "npm package version"

:|

tleb

En faisant ça j’ai trouvé la version de node, pas de express

Awoken

Premier résultat chez moi. Je suis curieux de connaître tes 3 premiers résultats.

Par contre, je fais comment pour savoir la version d’express ? Je pensais qu’un require suffisait lorsqu’on avait déjà installer express.

Awoken

Juste une recherche Google à faire. Une. "npm package version"

:|

tleb

En faisant ça j’ai trouvé la version de node, pas de express

Awoken

Premier résultat chez moi. Je suis curieux de connaître tes 3 premiers résultats.

tleb

C’est pas comme si j’avais dis "En faisant ça j’ai trouvé la version de node, pas de express"

Ou encore : "Alors, la version de Node que j’ai est la 8.2.1"

(Pour Node.js)

+0 -1
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