2014-09-15 4 views
2

Dans mon router/index.js, je me sers res.sendfile(..) comme suit:exprimer res.sendfile désapprouvée: Utiliser la place res.sendFile

var express = require('express'); 
var router = express.Router(); 

/* GET home page. */ 
router.get('/', function(req, res) { 
    res.sendfile('public/app.html'); 
}); 

module.exports = router; 

et voici ma structure de répertoire:

/Users/lucas/nodeProject/ 
....app.js 
....public/ 
........app.html 
....routes/ 
........index.js 

Le but de cette exemple est de se connecter à ma page via http://myurl.com/ au lieu de http://myurl.com/app.html. Tout fonctionne très bien, sauf que je reçois le message suivant sur ma console côté serveur:

express deprecated res.sendfile: Use res.sendFile instead 

Quelqu'un sait-il la cause, et comment résoudre ce problème? substituant simplement res.sendfile(..) pour res.sendFile(..) me donne l'erreur:

path must be absolute or specify root to res.sendFile 

J'ai essayé d'autres options, décrit here et here de remplacer res.sendFile('app.html', { root: path.join(__dirname, '../public') });, mais il ne me donne cette erreur:

ReferenceError: path is not defined 

Voici mes dépendances aussi:

"dependencies": { 
    "express": "~4.8.1", 
    "static-favicon": "~1.0.0", 
    "morgan": "~1.0.0", 
    "cookie-parser": "~1.0.1", 
    "body-parser": "~1.0.0", 
    "debug": "~0.7.4", 
    "jade": "*", 
    "mongodb": "*", 
    "mongoskin": "*", 
    "connect-mongo": "*", 
    "express-session": "~1.5.1"} 

Je suis aussi un peu nouveau à node.js, donc un Toutes les suggestions sont les bienvenues.

Répondre

5

ReferenceError: path is not defined

Cela signifie que vous avez besoin de mettre var path = require('path'); quelque part près du haut de votre script.

0

vous pouvez aussi être en mesure d'obtenir le même résultat en ajoutant ces lignes de code:

var dirPath = __dirname; 
app.get('/', (req, res) => { 
    res.sendFile(`${dirPath}/assets/views/index.html`); 
}); 
Questions connexes