Node.js编码规范
调用函数的时候,函数名与左括号之间没有空格。
函数名与参数序列之间,没有空格;所有其他语法元素与左括号之间,都有一个空格。
使用小驼峰式命名法作为所有变量和属性的命名规则。
缩进使用两空格,统一使用单引号。
关联数组,除非键名中有空格或是非法字符,否则一律不用引号。
不要将不同目的的语句,合并成一行。
不要省略句末的分号,哪怕一行只有一个语句。
不要使用自增(++)和自减(--)运算符,用+=和-=代替。
不要使用"相等"(==)运算符,只使用"严格相等"(===)运算符。
所有变量声明都放在函数的头部。
所有函数都在使用之前定义。
尽量给构造函数和回调函数命名,这样当你在调试的时候可以看见更清晰的调用栈。
尽量将所有的成员函数通过原型定义,将属性在构造函数内定义,然后对构造函数使用new关键字创建对象。
避免复杂的继承,如果要继承,尽量使用util模块中的inherits函数。比如A继承B,可以util.inherits(A,B)。
参考资料:
《Node.js开发指南》附录B(BYVoid)
Javascript编程风格 (阮一峰)
相关推荐
-
Node.js中使用Buffer编码、解码二进制数据详解
JavaScript很擅长处理字符串,但是因为它最初的设计是用来处理HTML文档,因此它并不太擅长处理二进制数据.JavaScript没有byte类型,没有结构化的类型(structured types),甚至没有字节数组,只有数字和字符串.(原文:JavaScript doesn't have a byte type - it just has numbers - or structured types, or http://skylitecellars.com/ even byte arra
-
详解nodejs爬虫程序解决gbk等中文编码问题
使用nodejs写了一个爬虫的demo,目的是提取网页的title部分. 遇到最大的问题就是网页的编码与nodejs默认编码不一致造成的乱码问题.nodejs支持utf8, ucs2, ascii, binary, base64, hex等编码方式,但是对于汉语言来说编码主要分为三种,utf-8,gb2312,gbk.这里面gbk是完全兼容gb2312的,因此在处理编码的时候主要就分为utf-8以及gbk两大类.(这是在没有考虑到其他国家的编码情况,比如日本的Shift_JIS编码等,同时这里这
-
nodejs批量修改文件编码格式
摘要: 最近在制作手册的时候遇到了一个问题'文档乱码',查看文件之后发现文件编码不对,总共100多个文件,如果用编辑器另存为utf8,那就悲催了.所以自己就写了个程序,批量修改文件编码格式. 代码: 复制代码 代码如下: /** * 修改文件编码格式,例如:GBK转UTF8 * 支持多级目录 * @param {String} [root_path] [需要进行转码的文件路径] * @param {Array} [file_type] [需要进行转码的文件格式,比如html文件] *
-
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了. 下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做): 复制代码 代码如下: npm install -g iconv-lite npm install -g nodemailer npm install -g node-schedule 1.nodejs读取中文文件编码问题 准备一个文本文件(当然也可以是csv文件等)test
-
nodejs爬虫抓取数据之编码问题
cheerio DOM化并解析的时候 1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现 2.如果使用了 .html()方法,则很多情况下(多数是非英文的时候)都会出现,这时,可能就需要转义一番了 类似这些 因为需要作数据存储,所有需要转换 复制代码 代码如下: Халк крушит. Новый способ исполнен 大多数都是&#(x)?\w+的格式 所以就用正则转换一番 var body = ....//这里就是请求后获得的返回数据,或者那些 .html
-
node.js学习之base64编码解码
一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就 不能通过邮件传送.这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了.最好的方法就是在不改变传统协议的情 况下,做一种扩展方案来支持二进制文件的传送.把不可打印的字符也能用可打印字符来表示,问题就解决了.Base64编码应运而生,Base64就是一种 基于64个可打印字符来表示二进制数据的表示方法
-
使用Node.js处理前端代码文件的编码问题
使用 NodeJS 编写前端工具时,操作得最多的是文本文件,因此也就涉及到了文件编码的处理问题.我们常用的文本编码有 UTF8 和 GBK 两种,并且 UTF8 文件还可能带有 BOM.在读取不同编码的文本文件时,需要将文件内容转换为 JS 使用的 UTF8 编码字符串后才能正常处理. BOM 的移除 BOM 用于标记一个文本文件使用 Unicode 编码,其本身是一个 Unicode 字符("\uFEFF"),位于文本文件头部.在不同的 Unicode 编码下,BOM 字符对应的二进
-
Node.js编码规范
调用函数的时候,函数名与左括号之间没有空格. 函数名与参数序列之间,没有空格:所有其他语法元素与左括号之间,都有一个空格. 使用小驼峰式命名法作为所有变量和属性的命名规则. 缩进使用两空格,统一使用单引号. 关联数组,除非键名中有空格或是非法字符,否则一律不用引号. 不要将不同目的的语句,合并成一行. 不要省略句末的分号,哪怕一行只有一个语句. 不要使用自增(++)和自减(--)运算符,用+=和-=代替. 不要使用"相等"(==)运算符,只使用"严格相等"(===)
-
5 种JavaScript编码规范
什么是编码规范 编码规范就是指导如何编写和组织代码的一系列标准.通过阅读这些编码规范,你可以知道在各个公司里代码是如何编写的. 我们为什么需要编码规范 一个主要的原因是:每个人写代码的方式都是不同的.我可能喜欢这么写,而你喜欢用另一种方法写.如果我们只处理自己的代码,这样并没有什么问题.但如果有成千上万的程序员同时在一个代码库上面工作呢?如果没有规范,事情很快会变得一团糟.代码规范可以让新人迅速的熟悉相关的代码,并且也能写出让其他程序员简单易懂的代码. Airbnb JavaScript Sty
-
Javascript 编码约定(编码规范)
1.使用 strict 模式 在一个作用域(包括函数作用域.全局作用域)中,可以使用 "use strict"; 来开启 strict 模式. 2.缩进 用 Tab 键进行代码缩进,以节约代码大小,使用4个空格的宽度来进行缩进(JSLint 建议). 3.符号 1) 大括号 与语句放同一行,放于最后面:仅有一行语句,也使用大括号: if (true) { //true } else { //false } while (true) { //alert(1); } 2) 空格 在逗号.分
-
从零学习node.js之模块规范(一)
什么是Node.js? 很多初学者并没有真正地理解Node.js到底是什么.nodejs.org网站中的描述也没有多大帮助. 首先要清楚Node不是一个Web服务器,这十分重要.它本身并不能做任何事情.它无法像Apache那样工作.如果你希望它成为一个HTTP服务器,你必须借助它内置库自己编写.Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime. 模块化 在讲解CommonJS, AMD, CMD这些概念之前,我们首先俩了解下js的模块化.模块化,
-
Node.js+ELK日志规范的实现
一般前端开发同学,对日志其实不太敏感,毕竟前端大多数情况下,不太关心日志.即使有,也可能调用一些第三方的统计,比如百度统计或者别的等.在 Node.js(下文中简称node) 推进过程中,也发现我们平常打日志太随意,该打的日志没有打,打的一些关键日志缺少必要上下文信息,导致在线上定位问题的时候很困难. 本文主要梳理了目前我们团队在nodejs开发中日志方面存在的问题,以及通过统一日志规范,希望达到什么样的效果. 问题 node日志不规范,打日志太随意 没有良好的日志格式.约定的字段,在 ELK
-
详解JS ES6编码规范
1.块级作用域 1.1.let取代var ES6 提出了两个新的声明变量的命令: let 和const.其中,let可以完全取代var,因为两者语义相同,而且let没有副作用. var命令存在变量提升的特性,而let没有这个命令. 所谓变量提升,即指变量可以先使用,再声明,显然,这种编码规范非常不适合阅读. 1.2.全局常量和线程安全 在let和const之间,优先使用const. let应出现在单线程模块代码内,而const则非常适合多线程. // bad var a = 1, b = 2,
-
使用Node.js搭建静态资源服务详细教程
对于Node.js新手,搭建一个静态资源服务器是个不错的锻炼,从最简单的返回文件或错误开始,渐进增强,还可以逐步加深对http的理解.那就开始吧,让我们的双手沾满网络请求! Note: 当然在项目中如果有使用express框架,用express.static一行代码就可以达到目的了: app.use(express.static('public')) 这里我们要实现的正是express.static背后所做工作的一部分,建议同步阅读该模块源码. 基本功能 不急着写下第一行代码,而是先梳理一下就基
-
在Node.js中使用HTTP上传文件的方法
开发环境 我们将使用 Visual Studio Express 2013 for Web 作为开发环境, 不过它还不能被用来做 Node.js 开发.为此我们需要安装 Node.js Tools for Visual Studio. 装好后 Visual Studio Express 2013 for Web 就会转变成一个 Node.js IDE 环境,提供创建这个应用所需要的所有东西..而基于这里提供的指导,我们需要: 下载安装 Node.js Windows 版,选择适用你系统平台的
-
使用node.js搭建服务器
使用node搭建小型服务器(其实就是分析url然后输出文件给客户端) 最近需要完成一个课程设计,被项目经理(组长)分配写界面,但是总觉得只写前端的话缺了点什么,所以想自己写下后端玩一下. 期间还稍微纠结了一下用什么语言,本来打算正好学习一下PHP,可后来转念一想,用nodejs岂不美哉,不仅了解了后台开发,也相当于巩固了js基础,一举两得,美滋滋. 在学习node的过程中,学到了使用node实现一个服务器这一块,感觉是对前面所学模块的一个很好的总结.用到了四个基本的模块fs stream htt
随机推荐
- Lua教程(九):元表与元方法详解
- ubuntu系统下C++调用matlab程序的方法详解
- vue双向绑定的简单实现
- 深入浅析JavaScript中对事件的三种监听方式
- 《解剖PetShop》之四:PetShop之ASP.NET缓存
- javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法 原创
- CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解
- JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
- Ajax基础知识详解
- 几款免费开源的不用数据库的php的cms
- jquery实现最简单的滑动菜单效果代码
- jqGrid随窗口大小变化自适应大小的示例代码
- 如何在Eclipse中设置Oracle的JDBC
- Lua的迭代器使用中应该避免的问题和技巧
- jquery如何改变html标签的样式(两种实现方法)
- Python简单获取自身外网IP的方法
- js实现简单计算器
- js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
- 30分钟搭建Python的Flask框架并在上面编写第一个应用
- Vue中this.$router.push参数获取方法