res.sendFile() echoue avec un ReferenceError: path is not defined

Par Amstramgram, il y a 11 ans


Bonjour,

je teste des trucs mais la ça fait presque 1h et je ne comprends pas ce qu'il veut. J'ai trouvé des problèmes et des solutions mais jamais les bonnes.
Le but est de charger le fichier index.php mais il me retourne une erreur de type :

ReferenceError: path is not defined.

Structure de mon projet

index.php
dossier
-dossier
--dossier
---nodes_modules
---server.js
---client.js

server.js

var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
    res.sendFile(path, {'root':'C:\wamp\www\dev\index.php'});
});
http.listen(1337, function(){
   console.log('listenong on *:1337'); 
});

Si vous avez une solution a me proposer.

Merci

4 réponses

Govan06, il y a 11 ans

Tout bête mais :

var path = require('path');

Non ?

Alexandre Lorret, il y a 11 ans

Tu as oublié quelque chose dans ta fonction res.sendFile(). Voici son utilisation :

res.sendFile(path, [options], [fn])
  • path correspond au fichier que tu veux retourner donc tu dois le définir, par exemple 'var path = req.params.name;' ou pour toi res.sendFile("C:\wamp\www\dev\index.php"); .
  • options n'est pas obligatoire, il permet de définir les headers de ta page (informations cachées) au format JSON.
  • fn est ta fonction de callback.
Amstramgram, il y a 11 ans

Si [options] n'est pas obligatoire. Cela veut dire que ca devrait fonctionner avec ou sans param.

Alexandre Lorret, il y a 11 ans

En fait c'est toujours mieux d'avoir [options] pour une page optimisée mais rien d'essentiel, ton middleware fonctionnera ;)
L'essentiel est de définir path quelque part pour qu'il sache quel fichier retourner. D'où le "ReferenceError: path is not defined".