2016-12-12 2 views
-1

Ich benutze NodeJS v6.5.0. Ich bin neu, also mache ich einige Fehler und würde etwas Hilfe schätzen. Ich experimentiere mit dem Schreiben meiner eigenen Middleware. Im Moment habe ich den Code Arbeits:NodeJS: Wie erstelle ich einfache Middleware?

var http = require('http'); 

http.createServer(function(req, res) { 
    myMiddleware(req, res); 
}).listen(3000); 

function myMiddleware(req, res) { 
    res.end('Hello World'); 
}; 

Allerdings, wenn ich es zu ändern:

var http = require('http'); 

http.createServer(myMiddleware(req, res)).listen(3000); 

function myMiddleware(req, res) { 
    res.end('Hello World'); 
}; 

ich den Fehler 'req ist nicht definiert'. Könnte mir bitte jemand erklären, warum das passiert und was ich tun muss, um das Problem zu beheben? Prost.

+0

Dies ist ein JavaScript-Fehler, es hat nichts mit Node – nicovank

Antwort

3

Schreiben Sie einfach

var http = require('http'); 

function myMiddleware(req, res) { 
    res.end('Hello World'); 
}; 

http.createServer(myMiddleware).listen(3000); 

Sie benötigen eine Middleware (die Funktion) passieren zu äußern, um es auszuführen nicht

+0

zu tun Danke Thomas. Das hat mein Problem gelöst. – PingPing

0

Wir nicht Anforderung oder eine Antwort senden Sie benötigen während Middleware verwenden.

var http = require('http'); 

function myMiddleware() { 
     return function(req,res,next) { 
     // do some stuff here 
     next(); 
     } 
    } 

http.createServer(myMiddleware).listen(3000); 

Oder wenn Sie Parameter in Middleware übergeben wollen, können Sie auf diese Weise

var http = require('http'); 

    function myMiddleware(getparams) { 
      return function(req,res,next) { 
      // do some stuff here 
      console.log(getParams) 
      next(); 
      } 
     } 

http.createServer(myMiddleware(params)).listen(3000); 

Next() verwenden, ist die Verwendung Steuerung zur nächsten Methode zu übergeben oder nächste Middleware.

Verwandte Themen