我正在开发一个nodeJS路由器,想知道在使用nodeJS路由http请求时是否有更快/更好的方法。
我不想使用某种框架中的路由器,我想自己构建它。
var servletRoutes = {
"/grid/api/proxy" : statusServlet,
"/grid/register" : registerServlet,
"/grid/unregister" : unregisterServlet,
"/selenium-server/driver" : rcRequestHandler
};
var parseIncoming = function(req, res, cb) {
var srvUrl = url.parse(req.url.toString(), true);
var servlet, route;
if (servletRoutes[srvUrl.pathname]) {
servlet = servletRoutes[srvUrl.pathname];
return servlet.handleRequest(req, cb, res);
} else {
// slower lookup of routes
for (route in servletRoutes) {
if (route === srvUrl.pathname.substring(0, route.length)) {
servlet = servletRoutes[route];
return servlet.handleRequest(req, cb, res);
}
}
}
return cb("Invalid endpoint");
};
最佳答案
我们就是这样做的
var express = require( 'express' );
var app = express();
app.use( '/', app.router );
app.post('/grid/api/proxy', statusServlet,);
app.post('/grid/api/register', registerServlet,);
...
app.use( function ( request, response ) {
response.send( 404 );
});
app.use( errorHandler );
关于node.js - NodeJS设计模式: simple http router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036362/