I tested that express is a little slower then non-express code. I planning
to design a new web framework and I also design a benchmark tool, to make
sure my framework is fast.
My basic thinking is fast routing, fast session, in memory cache and clean
code.
The first step is fast routing, I use a mechanism multi routing,
*1st is hash routing, e.g. app.get('/user/login', login), will routing by
handlers['/user/login'](req, res);*
*
*
*2nd is multi hash routing, e.g. app.get('/user/:id/edit', editprofile),
will routing by handlers['user']['*']['edit'](req, res);*
*
*
*3rd is match routing, e.g. app.get(/user\/edit-(\d+)/, editprofile), will
routing by handlers.forEach(function(rule) { if(rule.test(req.path)
handlers[rule](req, res) })*
*
*
but before do this, I have to design the routing api. is sinatra like api
good enough? when I coding, I still need seprate the routings to different
files, so we have below code
1: in app.js:
> app.get('/user/login', routes.user.login)
or 2: in routes/user.js :
var app = require('../app');
> app.get('/user/login, function(req, res, next) { // code here });
or 3
in app.js:
> require('./routes')(app);
in routes/user.js
module.exports = function(app) {
> app.get('/routes/user', function(req, res, next){// code here})
> }
Did you see the problem?
We can just map `get.user.login` to GET '/user/login' to save typing and
ignore circulate dependency.
get/index.js
> var app = module.export
> // url: / url: /index goes here
> app.index = function(req, res) {}
> // url: /user goes here and all request of /user/* not found matchs goes
> here
> app.user = require('./user')
> get/user.js
> // url: /user/ and url: /user/index goes here
> user.index = function(req, res){}
> // url: /user/login goes here
> user.login = function(req, res) {}
but this method has a problem, how define param routing and regex routing?
What do you think about all these things?
--
Best regards,
Jason Green
桂林
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en