2016-05-21 11 views
7

ho installato 'express' con NPM, ho successo numero della porta di ascolto su 3000. ma dopo un po 'ho ottenuto il seguente errore,"TypeError: res.sendStatus non è una funzione" perché ricevo questo errore dopo qualche tempo?

TypeError: res.sendStatus is not a function

Come sappiamo, res.sendStatus(404) è legato alla Express.But espresso è chiaramente situato.

Ecco il codice sorgente in app.js

var express = require('express'), 
app = express(); 

app.get('/', function(req, res){ 
    res.send('Hello Worlds'); 
}); 

app.use(function(req, res){ 
    res.sendStatus(404); 
}); 

var server = app.listen(3000, function() { 
    var port = server.address().port; 
console.log('Express server listening on port %s', port); 
}); 

Qui è la mia piena potenza cmd,

> $ node app.js 
Express server listening on port 3000 
TypeError: res.sendStatus is not a function 
    at Object.handle (I:\mongoUniversity\hello_world_templates\app.js:14:9) 
    at next (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\proto.js:174:15) 
    at pass (I:\mongoUniversity\hello_world_templates\node_modules\express\lib\router\index.js:110:24) 
    at Router._dispatch (I:\mongoUniversity\hello_world_templates\node_modules\express\lib\router\index.js:173:5) 
    at Object.router (I:\mongoUniversity\hello_world_templates\node_modules\express\lib\router\index.js:33:10) 
    at next (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\proto.js:174:15) 
    at Object.expressInit [as handle] (I:\mongoUniversity\hello_world_templates\node_modules\express\lib\middleware.js:30:5) 
    at next (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\proto.js:174:15) 
    at Object.query [as handle] (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\middleware\query.js:43:5) 
    at next (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\proto.js:174:15) 
    at Function.app.handle (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\proto.js:182:3) 
    at Server.app (I:\mongoUniversity\hello_world_templates\node_modules\connect\lib\connect.js:67:37) 
    at emitTwo (events.js:87:13) 
    at Server.emit (events.js:172:7) 
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:525:12) 
    at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23) 

Ho controllato domande simili, dove hanno detto di controllare se 'esprimere' è stato installato o no, ma l'ho installato correttamente. Allora cosa sto sbagliando?

+1

Controlla la versione di Express che stai utilizzando. Solo '4.x' usa' res.sendStatus'. –

+0

Corretto !, Grazie a @PatrickRoberts, ho trovato che nel file "package.json" la versione express definita era 3.x (aggiornata ora), ma ho anche installato globalmente la versione 4.13.4, quindi quando ho controllato la versione espressa su comando linea ha sempre restituito la versione 4.x, quindi ero meno preoccupato per la versione. –

+0

Express non dovrebbe essere installato a livello globale, quindi cerca di evitare di farlo. –

risposta

Problemi correlati