我的第一段代码如下:
var express = require('express');
var app = express.createServer(express.logger());
app.get('/', function(request, response){
response.send('Hello World 2');
});
var port = process.env.PORT || 5000;
app.listen(port, function(){
console.log("Listening on " + port);
});
抛出错误:“大多数中间件(如记录器)不再与Express捆绑在一起,必须单独安装”
所以我查看了StackOverflow,npm安装了morgan,并将我的代码更改为:
var express = require('express');
var logger = require('morgan');
var app = express.createServer(logger());
app.get('/', function(request, response){
response.send('Hello World 2');
});
var port = process.env.PORT || 5000;
app.listen(port, function(){
console.log("Listening on " + port);
});
现在我收到了这个错误:
var app = express.createServer(logger());
^
TypeError: Object function createApplication() {
var app = function(req, res, next) {
app.handle(req, res, next);
};
mixin(app, proto);
mixin(app, EventEmitter.prototype);
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
} has no method 'createServer'
答案 0 :(得分:0)
您应该使用app
创建express()
。之后,您可以使用morgan
设置任何中间件(在本例中为app.use
):
var express = require('express');
var logger = require('morgan');
var app = express();
app.use(logger());
...
app.use()
文档:http://expressjs.com/4x/api.html#app.use。 (链接到Express 4.x文档并不明确您正在运行的Express版本。)
有一个完全相同的例子,就像我在GitHub中的Morgan's README中所写的一样。
答案 1 :(得分:0)
这是因为createServer
方法已从快递中删除。
使用
app = express();
app.use(logger())
而不是
app = express.createServer(logger())
很多东西从快递3.0改为4.0。你应该看看here