nodejs所思所得

本文分享了一年的Node.js开发经验总结,包括中间件使用、避免回调地狱、优雅的错误处理、合理组织代码、时间处理、DRY原则、单元测试的重要性及函数参数设计建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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 ...
            })

定义函数,参数最好不要超过4个,大家可能都知道js的函数参数不是通过签名进行判断的,所以你定义了5个参数照样可以传递4个参数,但是问题来了,你怎么能记住你定义的参数的顺序呢?是不是一下解决方案会更优雅一些呢?

    function method1(must_param1, must_param2,must_param3, options) {
       //必须的参数定以到列表中,可选参数放到options中
   }

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

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

            bower 前段文件管理工具
            grunt 自动化工具
            angularjs 前段双向数据绑定框架
            socket.io 实时通信

转载于:https://my.oschina.net/wanglihui/blog/389425

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值