2014-07-11 11 views
8

Ziemlich neu zu Nodejs hier. Ich habe einen Nodejs Webserver, der Daten über Ajax anbietet. Ich muss jetzt den Server erweitern, um auf verschiedene Postanfragen zu antworten. Alles was ich versuche zu laufen ist die BodyParser Middleware aber auf einem anderen Entwicklungscomputer.NodeJS Connect Fehler - hat keine Methode 'Logger'

os: debian NodeJS: v0.10.29

ausgeführt haben "npm installieren connect" als normaler Benutzer und Root

Code

var http = require('http'); 
var connect = require('connect'); 

var app = connect() 
    .use(connect.logger('dev')) 
    .use(connect.static('public')) 
    .use(connect.bodyParser()) 
    .use(function(req, res){ 
    res.end(JSON.stringify(req.body)); 
    }) 

http.createServer(app).listen(2081); 

diese Ausgabe erhalten carl @ Crunchbang: ~/nodedev $ node ./test.js

/home/carl/nodedev/test.js:5 
    .use(connect.logger('dev')) 
      ^
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 'logger' 
    at Object.<anonymous> (/home/carl/nodedev/test.js:5:16) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:906:3 

Ich weiß, ich vermisse etwas wirklich einfach jede Hilfe geschätzt.

Antwort

14

Connect kommt nicht mehr mit gebündelter Middleware. Ihr Code würde mit der Middleware in etwa so aussehen.

var http = require('http'); 
var connect = require('connect'); 
var bodyParser = require('body-parser'); 
var logger = require('morgan'); 

var app = connect() 
    .use(logger()) 
    .use(connect.static('public')) 
    .use(bodyParser.urlencoded({ 
     extended: true 
    })) 
    .use(bodyParser.json()) 
    .use(function(req, res){ 
    res.end(JSON.stringify(req.body)); 
    }) 

http.createServer(app).listen(2081); 
+0

danke :) Ich habe die Produktion Web-Server einen Monat oder so vor sieht wie seine seit geändert hat. Tausend Dank! – Carlhako

3

Wie Sie in der Dokumentation sehen: https://www.npmjs.org/package/connect

morgan - vorher Logger

Jetzt müssen Sie morgan verwenden.

+0

Ich schaute auf die Sencha-Seite http://www.senchalabs.org/connect/, die sich immer noch auf Logger bezieht. Danke für den Tipp – Carlhako

Verwandte Themen