Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS设计模式:简单http路由器_Node.js_Design Patterns - Fatal编程技术网

Node.js NodeJS设计模式:简单http路由器

Node.js NodeJS设计模式:简单http路由器,node.js,design-patterns,Node.js,Design Patterns,我正在开发一个nodeJS路由器,想知道在使用nodeJS路由http请求时是否有更快/更好的方法 我不想使用某种框架中的路由器,我想自己构建它 var servletRoutes = { "/grid/api/proxy" : statusServlet, "/grid/register" : registerServlet, "/grid/unregister" : unregisterServlet, "/selenium-server/driver" :

我正在开发一个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 );