1、express是一个成熟的web框架,但是有一个致命问题,就是单线程,也就是一旦在主线程出现问题,整个项目就宕了,所以对发起请求的参数进行校验,是一件十分必要的事情,有一个方法app.param('字段名',处理函数);可以起到校验的目的,如果正确next(),如果不对,就自定义Error,也发给next()函数。
2、利用闭包的思想,可以定义可重用,可配置的函数,如可配置,可重用的日志中间件:
function setup(format){
return function (req,resp,next){
const reg_str = /:(\w+)/g;
console.log(format.replace(reg_str,(match,property)=>{
return req[property]; }));
next();
}
}
3、nodejs中可以使用中间件进行错误控制,错误控制的独到之处就是:可以通过开发模式或生产模式进行处理,好处有二:一屏蔽给用户(可能是黑客)的错误信息;二给开发者更多提示信息。如:
function error_process(err,rea,resp,next){
console.log("enter");
const mode = process.env.NODE_ENV || 'production';
resp.statusCode = 404;
switch(mode){
case 'production':
resp.end("Error!");
break;
case 'development':
console.error('Error:');
console.error(err);
resp.setHead('Content-Type','application/json');
resp.end(JSON.stringify(err));
break;
}
}