2016-09-08 2 views
0

Ich versuche, eine express Anwendung zu entwickeln, in das ich Störung erhalte, während ich diesen Code verwenden:`express` - sendfile wirft Fehler

//allways sending the index file 
    app.get('*', function(req, res){ 

    res.sendFile(path.join(__dirname + '/public/app/views/index.html')); 

    }) 

hier ist der vollständige Code:

var 

    express = require("express"), 
    config = require('./server.config'), 
    path = require('path'), 
    mongoose = require('mongoose'), 
    app  = express(); 

    //setting static 
    app.use(express.static(__dirname + '/public')); 

    //connect to data base; 
    mongoose.connect(config.database); 

    //allways sending the index file 
    app.get('*', function(req, res){ 

    res.sendFile(path.join(__dirname + '/public/app/views/index.html')); 

    }) 


    app.listen(config.port); 
    console.log('app started ' + config.port); 

Irgendjemand hilft mir, das zu beheben. auch, wie man den express in auf spät aktualisiert?

Live Demo

Fehler Ich erhalte:

TypeError: res.sendFile is not a function 
    at /home/ubuntu/workspace/server.js:18:9 
    at callbacks (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:161:37) 
    at param (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:135:11) 
    at pass (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:142:5) 
    at Router._dispatch (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:170:5) 
    at Object.router (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:33:10) 
    at next (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/proto.js:190:15) 
    at resume (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/middleware/static.js:60:7) 
    at SendStream.error (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/middleware/static.js:73:37) 
    at emitOne (events.js:77:13) 
    at SendStream.emit (events.js:169:7) 
    at SendStream.error (/home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:147:51) 
    at SendStream.onStatError (/home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:248:48) 
    at /home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:320:26 
    at FSReqWrap.oncomplete (fs.js:82:15) 
TypeError: res.sendFile is not a function 
    at /home/ubuntu/workspace/server.js:18:9 
    at callbacks (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:161:37) 
    at param (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:135:11) 
    at pass (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:142:5) 
    at Router._dispatch (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:170:5) 
    at Object.router (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:33:10) 
    at next (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/proto.js:190:15) 
    at resume (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/middleware/static.js:60:7) 
    at SendStream.error (/home/ubuntu/workspace/node_modules/express/node_modules/connect/lib/middleware/static.js:73:37) 
    at emitOne (events.js:77:13) 
    at SendStream.emit (events.js:169:7) 
    at SendStream.error (/home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:147:51) 
    at SendStream.onStatError (/home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:248:48) 
    at /home/ubuntu/workspace/node_modules/express/node_modules/connect/node_modules/send/lib/send.js:320:26 
    at FSReqWrap.oncomplete (fs.js:82:15) 
+0

Welchen Fehler bekommen Sie? Der Code sieht in Ordnung aus, vor allem die Get-Part und Sendfile. – notionquest

+0

siehe Konsole im Editor (Go Live Demo) – 3gwebtrain

+0

Leider habe ich kein "c9" Konto. – notionquest

Antwort

1

Ich glaube, Sie verwenden "Express" Version 3.x. Die "sendfile" -Funktion wurde in der Express-Version 3.x mit Kleinbuchstaben "f" definiert.

Sie können entweder die Expressversion aktualisieren (oder) den Methodennamen mit Kleinbuchstaben ändern, um dieses Problem zu beheben.

res.sendfile(path, [options], [fn]])