给node.js新手的7个建议技巧

给node.js新手的7个建议技巧

ID:9074836

大小:60.16 KB

页数:6页

时间:2018-04-16

给node.js新手的7个建议技巧_第1页
给node.js新手的7个建议技巧_第2页
给node.js新手的7个建议技巧_第3页
给node.js新手的7个建议技巧_第4页
给node.js新手的7个建议技巧_第5页
资源描述:

《给node.js新手的7个建议技巧》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、给Node.js新手的7个建议技巧一些我更愿意在开始就知道东西利用Node.js开发是一个非常有趣,和令人满足的过程,他有3万多个模块可以选择使用,并且所有的模块可以非常容易的集成入现有的应用之中。无论如何,对于一些刚开始使用Node.js开发的的人来说,很容易碰壁,在这个文章中,我会提到在你学习过程中遇到的问题。贴士1:在开发环境使用nodemon,在生产环境使用pm2当你第一次开发Node.js应用的时候,其中一件事情就是一次又一次的运行[file].js 就和揭伤疤一样。当我第一次开发的nodeapp时候,这个让我感到异常挫败和痛苦,尤其是每当我修改很小东西的

2、时候需要control+c幸运的是我发现了一个非常棒的工具Nodemon.你可以利用以下的命令来安装。npminstall-gnodemonNodemon是一个令人惊叹的工具,当你全局安装他以后,可以通过 nodemon[file].js 来启动你的node.jsscripts,它会告诉nodemon来监视你的script和scripts的所有变化,这样的Node.js开发方式非常震撼以及让大大提高开发速度。那么,生产环境又如何,除非你用了heroku,Nodejitsu或者其他一些好的Node.js平台(也许他们有类似的功能),但是碰巧你用了EC2或者一些其他的云

3、平台来运行你的Node.jsapp,你如何能然保证这是一个始终运行的Node.jsapp?案就是PM2,PM2是一个类似于Nodemon的工具,不同之处在于它用于生产环境,和Nodemon相似的地方在于他会监控你的app的任何修改或者重新部署,但是有更好的一面,PM2在遭遇到崩溃的时候,他会正确重启你的app.PM2的优胜之处在于当你要将app需要多核处理的时候,PM2内部集成的负载均衡可以让你很容易的去指定运行多少个实例。pm2startapp.js-imax-i参数目的是指定运行多少个实例,在这个例子中PM2使用了一个常量max来扩展你的app运转到你最大的核数

4、,不要忘记Node平时只会运行在单核!贴士2:Async或者Q当你专注于写了更多的node.jsapps的时候,你肯定领略了什么是回调地狱。如果你还不知道,这里有一个例子:functionregister(name,password,cb){checkIfNameExists(name,function(err,result){if(err){returncb(“error”);}checkIfPasswordGood(password,function(err,result){if(err){returncb(“error”);}createAccount(nam

5、e,password,function(err,result){if(err){returncb(“error”);}createBlog(name,function(err,result){sendEmail(name,function(err,result){callback(result);});});});});});}这显然不是一个有用或者令人折服的代码,反而进入一种回调地狱般两难的境地,是你的话将如何避免?一个简单的办法是使用events,但是我个人不建议这么做,因为使用events来调用只有一个用途的私有方法,足以令人受挫。所以你该怎么做?这里有两个编

6、译好的模块async.js和Q,他们两个都可以防止落入回调地狱。Async.js或者‘async’让你可以容易的执行一些连续或者平行的任务,在不依赖一个又一个的嵌套循环前提下.下面是一些来自Async的readme,写明了他支持的模式,如需获取全部的支持方式请去他们的github主页查看。async.map([‘file1',’file2',’file3'],fs.stat,function(err,results){//resultsisnowanarrayofstatsforeachfile});async.filter([‘file1',’file2',’fi

7、le3'],fs.exists,function(results){//resultsnowequalsanarrayoftheexistingfiles});async.parallel([function(){…},function(){…}],callback);async.series([function(){…},function(){…}]);async.waterfall([function(callback){callback(null,‘one’,‘two’);},function(arg1,arg2,callback){callback(nu

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

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

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