nodejs参考架构

JavaScript 生态系统是快速发展且充满活力的,但是各种各样的选项可能会使在 Node.js 包之间进行选择变得非常困难。因此,拥有参考架构可以帮助团队避免一次又一次地重新学习相同的内容。

日志记录工具

Pino 是非常低的开销node.js日志记录器。

Pino with Express

1
npm install pino-http
1
2
3
4
5
6
7
8
9
10
11
const app = require('express')()
const pino = require('pino-http')()

app.use(pino)

app.get('/', function (req, res) {
req.log.info('something')
res.send('hello world')
})

app.listen(3000)

代码一致性工具

ESLint 用于检查JavaScript代码是否符合规则,由Nicholas C. Zakas在2013年创建。

选择 Web 框架

构建企业Node.js应用程序时做出的关键选择之一是将作为其基础的 Web 框架。而 Express.js 是一个不错的默认选择。

代码覆盖率

代码覆盖率是一种软件测试指标,它确定项目中有多少代码在测试过程下已成功验证,这反过来又有助于分析软件验证的彻底程度。

  • nyc,可能是最流行的代码覆盖率工具。该模块最受欢迎的主要原因之一是它与大多数 JavaScript 测试框架都能很好地配合。nyc是 的后继命令行界面 (CLI) istanbul。
  • Jest,当您使用该选项运行该工具时,它会生成覆盖范围–coverage。

测试示例

以nyc为例,该示例由文件中的两个简单函数以及使用Mocha 测试运行程序index.js的目录中的测试组成。

第一个函数将两个数字相加:

1
2
3
4
5
function addTwoNumbers(x, y) {

return x + y;

}

这个函数可以通过这个简单的测试轻松覆盖:

1
2
3
4
5
6
7
8
9
describe('testing for coverage', () => {

it ('should add 2 numbers correctly', () => {

assert.equal(addTwoNumbers(1,1), 2);

});

});

参考链接

  1. Why we developed the Node.js reference architecture,by redhat.
  2. Introduction to the Node.js reference architecture, Part 7: Code coverage,by redhat.