我在使用connect(source / routes.js)的节点中有这样一个简单的路由:
exports.routes = function(app) {
app.get('/data', function(req, res, params) {
res.writeHead(200, { 'Content-type': 'text/plain' });
res.write('Authenticated: ' + connect.session.auth + '\n');
res.end('app.get /data');
});
}
启动应用(app.js):
var routes = require('connect');
var routes = require('./source/routes');
var server = connect.createServer(
connect.cookieParser(),
connect.session({ secret: 'justmeknowsthis', cookie: { maxAge: config.data.sessionTimeout }}),
connect.router(routes.routes)
);
server.listen(3000);
我希望能做的是:
app.get('/data*', function(...
我通过解析网址确定要返回的数据。
答案 0 :(得分:9)
首先,路由器中间件已从Connect中删除,因此您可以使用Express或使您自己的路由器在将来更安全(请参阅此提交:https://github.com/senchalabs/connect/commit/2ca7ec3ff64cb7600bfd029233228236bf048671)。
如果你选择使用Express,你可以传递路线的正则表达式(更多信息在这里:http://expressjs.com/guide.html#routing),但我会使用类似的东西(对于你的特定情况):
app.get('/data/:type', function (req, res) {
console.log('Received ' + req.params.type + ' data');
});