2021-07-13-nodejs编码规范

1. 异步#

1.1. 尽量使用 async/await 方式实现异步#

1.2. 使用回调方式时,回调函数的第一个参数应该是错误对象#

并不是所有回调函数都需要将第一个参数设计为错误对象。但是一旦涉及异步,将会导致 try catch 无法捕获到异步回调期的异常。将第一个参数设计为错误对象,告知调用方是一个不错的约定。示例代码如下:

1
2
3
function (err, data) {

};

2. 类与模块#

2.1. 类继承#

请使用 ES6 的 class 和 extends 关键词获得语言层面的继承支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const EventEmitter = require('events');

class MyStream extends EventEmitter {
write(data) {
this.emit('data', data);
}
}

const stream = new MyStream();

stream.on('data', (data) => {
console.log(`接收的数据:"${data}"`);
});
stream.write('使用 ES6');

2.2. 导出#

所有供外部调用的方法或变量均需挂载在 exports 变量上。当需要将文件当做一个类导出时,需要通过如下的方式挂载:

1
module.exprots = Class;

3. 注解规范#

一般情况下,我们会对每个方法编写注释,这里采用 dox 的推荐注释,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**

* Queries some records

* Examples:

* ```

* query('SELECT * FROM table', function (err, data) {
* // some code
* });
* ```
* @param {String} sql Queries
* @param {Function} callback Callback
*/

exports.query = function (sql, callback) {
// ...
};

4. 声名变量时加 var 关键字,不污染环境#

作者

lxmuyu

发布于

2022-02-17

更新于

2022-02-17

许可协议