Javascript NodeJ设置通配符路由或url重写

Javascript NodeJ设置通配符路由或url重写,javascript,node.js,wildcard,Javascript,Node.js,Wildcard,我在使用connect(source/routes.js)的节点中有这样一个简单的路由: 正在启动应用程序(app.js): 我希望能够做到的是: app.get('/data*', function(... 我通过解析url来确定要返回的数据。首先,路由器中间件已从Connect中删除,因此您可以使用Express或使自己的路由器更安全(请参阅此提交:) 如果您选择使用Express,您可以为路由传入正则表达式(更多信息请参见:),但我会使用类似的方法(针对您的具体情况): 是的,现在看来是

我在使用connect(source/routes.js)的节点中有这样一个简单的路由:

正在启动应用程序(app.js):

我希望能够做到的是:

app.get('/data*', function(...

我通过解析url来确定要返回的数据。

首先,路由器中间件已从Connect中删除,因此您可以使用Express或使自己的路由器更安全(请参阅此提交:)

如果您选择使用Express,您可以为路由传入正则表达式(更多信息请参见:),但我会使用类似的方法(针对您的具体情况):


是的,现在看来是个好主意,我可以自己动手了。你知道删除路由器的原因吗?是的,我实际上问过Learnboost的一个家伙(Mongoose的作者),他说TJ从中间件中删除了它,因为它变得太过定制,以适应Express。顺便说一句,你可以查看Express或Flatiron的源代码,以提取路由器部分。(#灵感)应该是:'Received'+req.params.type+'data'@poshaughnessy是的很抱歉,我想我写答案的时候很匆忙。
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(...
app.get('/data/:type', function (req, res) {
  console.log('Received ' + req.params.type + ' data');
});