码迷,mamicode.com
首页 > Web开发 > 详细

nodejs所思所得

时间:2015-03-20 16:39:28      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

使用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 实时通信

nodejs所思所得

标签:

原文地址:http://my.oschina.net/wanglihui/blog/389425

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!