2014-06-20 21 views
7

quando chiamo questo Node.JS presentarenodejs collegano l'utilizzo di costruito in moduli -> metodo non trovato

var connect = require('connect'); 
var app = connect(); 
app.use(connect.static('public')); 
app.listen(3000); 

Io immediatamente ottengo

app.use(connect.static('public')); 
        ^
TypeError: Object function createServer() { 
    function app(req, res, next){ app.handle(req, res, next); } 
    merge(app, proto); 
    merge(app, EventEmitter.prototype); 
    app.route = '/'; 
    app.stack = []; 
    return app; 
} has no method 'static' 

Utilizzando Connect 3.0.1, ci sono cambiamenti con i moduli integrati? Se sì, come funziona allora?

risposta

13

grandi cambiamenti in arrivo con connect 3: i moduli middleware non sono più inclusi. Trovali allo github.com/expressjs. "static" è ora "serve-static". Ha bisogno di essere installato separatamente con:

npm install serve-static

Il codice di cui sopra dovrebbe apparire come questo:

var connect = require('connect'); 
var serveStatic = require('serve-static'); 
var app = connect(); 
app.use(serveStatic('public')); 
app.listen(3000); 
+2

questo dovrebbe essere nella documentazione ... triste è che non è il caso :( – alexserver

+0

Wow che certo è individuabile ... –

+0

è stato aggiunto ora, almeno qui: http://github.com/senchalabs/connect/blob/master/Readme.md – ohoservices

1

ho dovuto installare il collegamento e servire-statica

npm install connect 

poi tipo:

npm install serve-static 

Il codice qui sotto vi darà un bel messaggio che indica il server è collegato alla porta 3000.

var connect = require('connect'); 
var serveStatic = require('serve-static'); 
var app = connect(); 
var port = 3000; 
app.use(serveStatic(__dirname)); 
app.listen(port); 
console.log('You are connected at port '+port);