用nodejs做web前端服务器的一些经验

用nodejs做web前端服务器的一些经验

ID:12745839

大小:88.99 KB

页数:5页

时间:2018-07-18

用nodejs做web前端服务器的一些经验_第1页
用nodejs做web前端服务器的一些经验_第2页
用nodejs做web前端服务器的一些经验_第3页
用nodejs做web前端服务器的一些经验_第4页
用nodejs做web前端服务器的一些经验_第5页
资源描述:

《用nodejs做web前端服务器的一些经验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用nodejs做Web前端服务器的一些经验前不久NCZ发表了新文章Node.jsandthenewwebfront-end(译文),描述了用node.js做Web前端服务器的种种优势。NCZ在文章中推荐了一套服务器模型(图片来源自Node.jsandthenewwebfront-end)。这个模型在传统的后台服务器前,增加了一层node.js实现的FrontendServer层。这种架构的最大好处是前后端开发人员的依赖分离,让后端开发人员不必再关心数据在页面间如何传递、用户数据获取是通过Ajax还是刷新页面等前端开发所涉及的方方面面,前端开发人员也不必再关心数据如何在数据库中存储等等后

2、端问题。Thefront-endandback-endnowhaveaperfectsplitofconcernsamongsttheengineerswhoareworkingonthoseparts.Thefront-endhasexpandedbackontotheserverwheretheNode.jsUIlayernowexists,andtherestofthestackremainstherealmofback-endengineers.–NicholasC.Zakas碰巧前不久,我在公司内部尝试了这种架构,这里正好分享一些node.js做Web前端服务器的经验。与后台

3、服务器的交互在用户的一次请求中,往往需要请求多个不同的后台接口。由于node.js的异步特性,写多次HTTP请求并处理回调是一件非常痛苦的事情,例如varrequest=require('request');exports.index=function(req,res){request('API_A',function(err,response,body){if(err){//...}request('API_B',function(err,response,body){if(err){//...}request('API_C',function(err,response,body){

4、if(err){//...}//...});});});};这种情况通过[async]库可以很很好的解决这个问题。[async]是一个工具包,提供了各种各样的小函数来简化node.js的异步回调处理。varrequest=require('request');varasync=require('async');exports.index=function(req,res){async.map(['API_A','API_B','API_C',/*...*/],request,function(err,results){if(err){//...}varresultA=results[0

5、];varresultB=results[1];varresultC=results[2];//...});};通过async.map可以很轻易的实现并行请求数据。如果需要串行请求数据,可以使用async.Series函数。除此之外,还可以使用async.mapLimit来限制node.js的并发连接数。常用API数据的获取有些API数据是几乎每个页面都会用到的,例如当前用户的个人信息等。对于这类数据,可以通过middleware的方式来将它传递给controller。varrequest=require('request');varasync=require('async');fun

6、ctionuserdata(req,res,next){request('GET_USER_API',function(err,response,body){if(err){next(err);return;}req.user=JSON.parse(body);next();});}app.get('/pageA',userdata,pageAController);app.get('/pageB',userdata,pageBController);app.get('/pageC',userdata,pageCController);Cookie代理如果API接口需要验证Cookie

7、,那么node.js在发送API请求时,需要将用户的Cookie信息发到后台服务器。同样的,如果后台API接口修改了用户Cookie,例如登陆API,那么还需要node.js将设置用户Cookie的请求转发给用户。这就需要实现一个cookieRequest方法。varrequest=require('request');varcookieRequest=function(userRequest,userResponse,url,callback

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。