Node.js是服务端编程的终极武器,小白们不得不服


服务端编程走过PHP,JAVA,C#,感觉都很笨重,使用起来学习成本高,调试起来也非常困难。业务时间学习了一点Node.js,这是将Javascript用于服务端编程的一种技术,顿感天空晴朗,小白们不妨来试一试。

先看一段 index.js 代码,这是处理客户端http请求的,从语法上看与javascript一模一样,会前端开发的人都会写,但它实现的却是服务端的功能,自此前端程序员可以统治一切了 ,无需再受后端的气了。

<code>authentication = function(req, res, next) {
var body, currentUserId, i, len, ref, reqPath, userAgent;
userAgent = req.get('user-agent').substr(0, 50);
console.log("authentication, userAgent = " + userAgent + ", path = " + req.path);
ref = ['/misc/demo_square', '/misc/latest_update', '/user/verify_code_yp_t', '/misc/client_version', '/misc/mobile_version', '/user/login', '/user/register', '/user/reset_password', '/user/send_code', '/user/send_code_yp', '/user/verify_code', '/user/verify_code_yp', '/user/delete', '/user/get_sms_img_code', '/user/check_username_available', '/user/check_phone_available', '/user/regionlist', '/ping'];
for (i = 0, len = ref.length; i < len; i++) {
reqPath = ref[i];
if (req.path === reqPath) {
console.log("authentication, reqPath = " + reqPath);
if (req.body.password) {
body = JSON.stringify(req.body).replace(/"password":".*?"/, '"password":"**********"');
} else {
body = JSON.stringify(req.body);
}
console.log("authentication, body = " + body);
Utility.logPath('%s %s %s %s', userAgent, req.method, req.originalUrl, body);
return next();
}
}
currentUserId = Session.getCurrentUserId(req);
if (!currentUserId) {
console.log("currentUserId Not loged in.");
return res.status(403).send('Not loged in.');
}
console.log("currentUserId = " + currentUserId);
Utility.logPath('%s User(%s/%s) %s %s %s', userAgent, Utility.encodeId(currentUserId), currentUserId, req.method, req.originalUrl, JSON.stringify(req.body));
return next();
};

/<code>

Node.js 有log打印功能,可以直接在控制台根据log查看代码运行逻辑,方便开发调试。

console.log("authentication, body = " + body);

更为方便的是你部署在云端的Node.js代码,可以用Chrome浏览器在客户端进行断点调试,无需任何IDE工具,只需要安装inspect插件即可:


Node.js是服务端编程的终极武器,小白们不得不服

inspect插件

有没有那种服务端语言有这么方便?除了Node.js没有别的了。Javascript的生命力真是顽强,十几年不断的进化和变种,生存的越来越好了


分享到:


相關文章: