nodejs所思所得

使用nodejs一年有余,细细品味走过的一年, 从一个只会嵌套callback的菜鸟,到稍许了解javascrip事件轮询,跳过很多坑,压过很多坎,一年了,总结一下node开发中的注意事项,自勉之余供大家吐槽一下:

使用middleware 定义需要重复验证工作,例如验证是登陆:

        function requireLogin(req, res, next) {
            if (登陆) {
              next();
            } else {
              res.redirect();
            }
        }

如果代码callback嵌套超过了3层,请重构代码吧(太痛苦了),可以借用 EventProxy, async, Q
命名变量千万要拼写对单词,否则别人改你代码时候太痛苦了
使用function login (req, res, next) {} 会比直接 exports要好一些,好处见下:

            //GET /login
        function login(req, res, next) {
            res.render("页面");
        }

        //POST /login
        function loginAction(req, res, next) {
            if (req.query.username != ‘wangdana‘) {
                //可以直接渲染登陆页面错误,曾经见N个人曾在群里问怎么传递错误到前段,这样是不是很优雅
                res.locals.error = ‘用户名或密码错误‘;
                login(req, res, next);
            }
        }

. 配置文件可以放到golbal中,别每次都去 require(“./config”) require(“../config”);这样确实挺费劲的;

        global.C = require("./config.json");
        //配置文件无处不在
        // a.js 可以直接待用C b.js 也可以直接待用C

. 时间处理,别在 new Date().getFullYear() + … ,有好用的moment,我们直接拿来吧

        global.moment = require("moment"); moment("时间").fromNow(); 多么优雅呀

. DRY 这是编码规范中的一条,不要重复你的代码,如果有段代码写了两三遍,果断封装成函数吧,当然也可以自己写成模块,我在项目中很多都西都写成了模块,导入的时候发现路径短了好多,么么哒

. 单元测试,单元测试,千万要记得写哦,否则你的项目越来越大,改动下能头疼死你, 瞬间感觉提出TDD的大神也是有过我这种被改别人代码虐过千万次的经历呀!

            //头等大事
            describe("文件名", function() {
                it ...
            })

. 当然最重要的还是要理解js的事件轮询,搞懂原理。多写多看,但是不要多问,自己搞懂得可以记一生,被人说的也许就记住了几秒。

. 推荐nodejs经常配套使用东东:

            bower 前段文件管理工具
            grunt 自动化工具
            angularjs 前段双向数据绑定框架
            socket.io 实时通信
时间: 2024-09-17 02:43:08

nodejs所思所得的相关文章

转行,开博客记录所思所得

本科是电子信息工程,大一下学期的时候进入实验室学习.从各种各样的单片机,模电数电,嵌入式一路走来,参加过省赛得过奖,发表过专利,也做个几个项目.两个月之前(大四下)接触前端,很喜欢.因为我一直很喜欢做直接跟用户接触的东西,而不是偏工业级的东西,前端正好符合.加上程序猿中很多聪明人,跟他们公事肯定很开心,所以弃嵌入式转行前端了.这意味着我本可以在校招中谋得一份不错的工作,而现在却拼命补充知识也不一定能得到一份称心的工作.不过也没事,我还年轻嘛.做自己喜欢的很重要,况且前端还是非常有前景的,起码比嵌

有些事儿,工程师可能今生仅此一次

郑昀 创建于2016/9/15 最后更新于2016/9/18 关键词:深度思考,碎片化阅读,做论文,深入研究, 早先在<技术高手如何炼成>一文中提到,我会问面试者,你日常如何构建自己的知识体系.有人会觉得你怎么就问出这么宏大的问题?知识体系,这是什么鬼? 面试时的交谈 工作之后你做过这样的事情吗? 面试是一个谁主张谁举证的过程,有时候需要面试者举出实例,自我证明. 而我认为问一些我们工作中遇到的难题和业务场景是在“欺负”面试者,所以我喜欢问开放型问题: 在你工作之后,你有没有像做毕业论文一样对

VassistX 注释 模板

文/.温国兵 惰性人皆有之,也算是人的一大天性.几日之前便构思好此文,怎奈每日杂事繁多,今日才提起笔,作下此文.本文谈谈我与数据库的故事. 说起和数据库结缘,还得从大一说起.大一刚开始接触C语言,每日就沉浸在无止境的代码中.在网上查资料的过程中,看到别人用C语言写了一个小型的图书操作程序,数据库采用的是SQL Server,运行出来的效果图很炫,惊叹原来还可以这样管理数据.熟知C语言的同学肯定对文件操作不陌生,当时我们写程序如果有静态数据,都是放在文件里的.直到后来做的C语言课程设计,我也是一大

H3C SecPath F100-C 防火墙配置说明

文/.温国兵 惰性人皆有之,也算是人的一大天性.几日之前便构思好此文,怎奈每日杂事繁多,今日才提起笔,作下此文.本文谈谈我与数据库的故事. 说起和数据库结缘,还得从大一说起.大一刚开始接触C语言,每日就沉浸在无止境的代码中.在网上查资料的过程中,看到别人用C语言写了一个小型的图书操作程序,数据库采用的是SQL Server,运行出来的效果图很炫,惊叹原来还可以这样管理数据.熟知C语言的同学肯定对文件操作不陌生,当时我们写程序如果有静态数据,都是放在文件里的.直到后来做的C语言课程设计,我也是一大

程序员的奋斗史(三十八)——大学断代史(二)——我与数据库的故事

文/.温国兵 惰性人皆有之,也算是人的一大天性.几日之前便构思好此文,怎奈每日杂事繁多,今日才提起笔,作下此文.本文谈谈我与数据库的故事. 说起和数据库结缘,还得从大一说起.大一刚开始接触C语言,每日就沉浸在无止境的代码中.在网上查资料的过程中,看到别人用C语言写了一个小型的图书操作程序,数据库采用的是SQL Server,运行出来的效果图很炫,惊叹原来还可以这样管理数据.熟知C语言的同学肯定对文件操作不陌生,当时我们写程序如果有静态数据,都是放在文件里的.直到后来做的C语言课程设计,我也是一大

Android开源库与设计模式开源组SAOS建立

Android开源库与设计模式开源组建立 简介 在2014年年底突然参与了CSDN的博客之星评选,看着自己的博客水平实在太低,于是就想一定得写一些跟别人不太一样的博客出来.经过自己的一番思考,觉得在Android开源库的深入实现上并没有什么太多的资料,或者只是大概讲述了一些基本原理.这样我觉得是不够的,很多事情你没有自己去经历你不会有很深的认识,或者你根本不知道原来它会出现这样的问题.于是我就想我没通过学习轮子制造过程来更加深入的学习,这样不仅能够了解那些知名的开源库,也能够从实战的角度学习开源

让自己更值钱的要诀

我们经历了小学.初中.高中,习惯了死记硬背,习惯了凡事都去索要标准答案.这种习惯带到职场,就导致了我们缺乏思考能力和自主学习能力,凡事等待别人安排,遇到问题首先想到的是找别人索要现成解决方案. 比如你使用Android的ListView,想让它默认选中某一项,你会怎么解决这个问题?可能首先想到的就是到Google.百度上去搜索一下,看看别人是否遇到过类似的需求,是否提供了解决方法. 这样做可以使得你的问题得到解决,但是你解决问题的能力并没有得到锻炼,你得到锻炼的是--使用搜索引擎的能力. 而解决

我和数据库的故事

在学习数据库知识的过程中,难免会遇到各种各样的问题.遇到问题后,我首先尝试自己解决,自己解决不了再参考别人的解决办法,解决后再用自己的方式总结,再以博客的形式发表.这种学习方式好处非常之多,读者不妨借鉴.后来学习数据库就多了一些深入.比如工作之后,成为了SQL Server DBA,开始看SQL 优化的知识,并且用于实践.工作的过程中还写了不少的检查性能瓶颈的T-SQL.再比如MySQL,学习了MySQL的高可用.高性能技术,比如复制技术中的主从复制.双主复制.一主多从:高可用.高性能集群方案,

转自:如何自学Android(强烈推荐)

转自: http://gityuan.com/2016/04/24/how-to-study-android/ 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学.有句话叫“师傅领进门修行靠个人”,再厉害的老师能教你的东西都是很有限的,真正的修行还是要靠自己.我本科是学数学的,虽然研究生是计算机专业,但研究生往往是做研究工作,并不会接触编程这么基本的东西,关于编程相关我都是靠自学.对于Android这一块,是参加工作还开始接触,开始自己学习的. 学习级别,很多人都往往划分成入门.初级.中间