Node调试之道-----JSHint

  Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能。但是对于新手来说,server端的JS代码可能不像client端的代码那么好调试,直观。client端JS代码的调试基本上经历了一个从“肉眼--alert()--firebug(或者其它的developer tools)”的一个过程。而对于server端的调试,可能新手仍然停留在使用“肉眼--console()”的阶段。其实,Node经过了这么多年(虽然才短短几年)的发展,也有了很多不错的第三方的调试工具。包括Node内建的调试工具debugger、node-inspector等。现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。

  JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端)地方的JS代码的规范性。它提供了配置的方法,从而让开发者自己来定义检查哪些规范上的错误。这就给开发者带来了很大的便利性,因为在开发过程中,尤其是在团队开发过程中会经常遇到各种各样因不符合规范而带来的问题,或者一些常见的文本错误,如使用未定义的函数或者参数等。

  1、安装JSHint。

  打开cmd命令窗口,输入以下命令:

  

npm install -g jshint  //-g的意思是全局使用

  注:如果提示npm不是内部或者外部命令,那么多半是你没有安装node或者npm。具体安装过程请参考http://dailyjs.com/2012/05/03/windows-and-node-1/。

  2、运行JSHint。

  打开cmd命令窗口,使用cd切换到你对应的应用目录下,输入一下命令:

jshint my_app.js

  注:my_app.js即是你打算校验或者检查的文件。

  3、配置JSHint。

  JSHint提供了配置的方法,使你可以根据自己团队或者爱好来定义检查校验的规则。可以到https://github.com/jshint/node-jshint/blob/master/.jshintrc复制默认的规则文件。

  方法一:如果你将复制来的规则文件命名为.jshintrc的文件,并且将文件放在对应目录或者父目录下,那么在运行JSHint的时候,会自动检索并使用此规则文件。

  方法二:如果你并没有将规则文件命名为符合规则的名字(即用.jshintrc),那么可以在运行JSHint的时候手动指定规则文件,例如你将规则文件命名为jshint.json。那么可以使用一下命令来运行JSHint并应用你的规则:

  

jshint my_app.js --config /root/application/jshint.json  //指定规则文件路径

  4、配置文件的规则。

  配置文件的规则由很多,包括常见的分号使用与否、class构造器函数首字母大写等。具体的规则不再一一赘述,请参考http://www.jshint.com/docs/。

  通过使用JSHint这一工具,会将你JS代码中很多常见的错误或者不小心搞错的代码检查出来。当然,JSHint不会强大到检查出你所有的错误。不过不用担心,还有另外几个可以为Node所用的调试工具,这次就仅仅介绍一下JSHint。

  以上是本人的一点愚见,如有错误,敬请指出。欢迎交流讨论。

Node调试之道-----JSHint的更多相关文章

  1. <读书笔记>软件调试之道 :从大局看调试-理想的调试环境

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  2. <读书笔记>软件调试之道 :从大局看调试-零容忍策略

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  3. <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  4. <读书笔记>软件调试之道 :问题的核心-修复后的反思

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  5. <读书笔记>软件调试之道 :问题的核心-如何修复缺陷

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! 修复缺陷 对于一个好的修复来说,不仅仅是让软件运行正确,还需要为将来奠定基础.一 ...

  6. <读书笔记>软件调试之道 :问题的核心-诊断

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智 ...

  7. <读书笔记>软件调试之道 :问题的核心-重现问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...

  8. node 调试相关

    #0 node 正确的书写方式 为了防止后面出现混乱的各种书写,先来了解一下如何正确书写 node 的名称. 下面使用来自@bitandbang 推文中的图片展示如何正确书写 node 名称. nod ...

  9. node调试的两种方法

    刚开始学node.js的时候,一直在用node-inspector,虽然很麻烦,但聊胜于无.后面公司牛人推荐使用node-webkit,就再也没用过node-inspector.再后来node.js版 ...

随机推荐

  1. Samba Linux 和windows 共享

    1.安装Samba  (yum install Samba) 2.配置Samba  (Samba的配置文件为/etc/samba/smb.conf) 1)打开smb.conf   vim /etc/s ...

  2. CentOS PPTP配置FreeRADIUS+DaloRADIUS实现高级用户控制+流量控制

    前提条件 阅读本文前,您需要搭建好PPTP,如果仍未搭建,可以参考:http://www.xj123.info/2301.html 如果您需要配置DaloRADIUS,那么您还需要安装LAMP,可以参 ...

  3. 20145224&20145238 《信息安全系统设计基础》 第一次实验

    20145224&20145238 <信息安全系统设计基础>第一次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  4. RLP编码

    RLP(Recursive Length Prefix, 递归长度前缀编码),是Ethereum中对象序列化的一个主要的编码方式,其目的是对任意嵌套的二进制数据的序列进行编码. RLP的目的仅仅是编码 ...

  5. iOS开发技巧

    一.寻找最近公共View 我们将一个路径中的所有点先放进 NSSet 中.因为 NSSet 的内部实现是一个 hash 表,所以查找元素的时间复杂度变成了 O(1),我们一共有 N 个节点,所以总时间 ...

  6. JavaScript的sleep延时函数

    JavaScript没有像Java的sleep延时函数,所以记录JavaScript的sleep延时函数 function sleep(milliSeconds) { var startTime = ...

  7. CTSC2015 酱油记

    终于又到写酱油记的时间了...不过开心不起来诶.. Day 0 晚上睡不着觉也不造为啥... 起来看了一本亚里亚小说,继续睡,睡不着... 又起来看了一本亚里亚小说,继续睡,睡不着... 然后...死 ...

  8. C#微信公众号接口开发实例-高级接口-申请带参数的二维码

    最近公司涉及到微信绑定用户,做了高级接口-申请带参数的二维码,总结了下微信开发接口.微信接口开发都是除了消息用的xml 回复基本上都是用json的形式传递信息(post/get),开发的方法基本都是一 ...

  9. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  10. oracle生成行方法

    数据库记录是行的集合 set of row, 那么如何如何生成集合呢? oracle中常用的是 递归查询(with ... union all ...) 以及 connect by(树形查询) htt ...