【发布时间】:2016-02-02 03:38:11
【问题描述】:
我仍在学习 node.js 并尝试将connect 中间件添加到此代码中:
var express = require('express')
var hbs = require('express-handlebars');
var connect = require('connect'),
path = require('path'),
hbs = require('express-handlebars');
app = express();
app.engine('handlebars', hbs(
{defaultLayout: 'main',
layoutsDir: app.get('views') + '/layouts',
partialsDir: [app.get('views') + '/partials']
}));
app.set('view engine', 'handlebars');
app.set('port', process.env.PORT || 3300);
app.set('views', __dirname + '/views');
var server = app.listen(app.get('port'), function() {
console.log('Server up: http://localhost:' + app.get('port'));
});
但是连接文档上的示例代码还包含:
var app = connect();
这会与 express 想要的相矛盾。所以我想知道如何同时拥有这两者,以便我可以使用这些中间件:
app.use(connect.json());
app.use(connect.urlencoded());
app.use(connect.methodOverride());
app.use(connect.cookieParser('some-secret-value-here'));
我已搜索但找不到关于此的最新代码示例。
【问题讨论】:
-
您不再使用 Express 连接。 Express 有自己的内置中间件。如果
connect用于中间件,您可能正在查看早期版本的 Express 的旧文档。 -
@jfriend00 没错。我正在读一本使用 express3 的书。那么现在如何添加中间件呢?
-
最好转到middleware page on the ExpressJS site。当现在每个人都在使用 4.x 时,一本 Express 3.x 的书不会有太大帮助。只是
app.use(function(req, res, next) {...});。更多示例here,包括使用第 3 方中间件。