带有负载平衡器的生产过程经理。用于调试和Git挂钩的包装器,通过HTTP标头保护快速应用程序,具有180多个用于处理日期的功能的实用程序,以及其他可节省时间的工具。该集合对于NodeJS新手开发人员特别有用,但可以使经验丰富的怀疑者满意。
每当您需要解决代码问题时,就有可能已经有一个软件包可以解决您的问题。这是我认为每个开发人员都应该知道的软件包列表。将这些npm软件包视为节省时间的工具。
1.哈士奇
Husky使在Git中实现钩子变得容易。它允许您要求所有人在提交或推送到存储库之前自动完成测试并测试代码。
来源沙哑
安装
yarn add husky
应用
钩子示例
husky
:
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm lint",
"pre-push": "npm test"
}
}
}
pre-commit
在提交之前运行。
pre-push
提交到存储库之前。
2. Dotenv
Dotenv是一个没有依赖关系的模块。它将环境变量从文件加载
.env
到process.env中。将配置保持在与代码分离的环境中是基于十二要素应用程序方法的。资料来源。
安装
yarn add dotenv
应用
在您的应用程序中尽早编写
require
并设置值dotenv
:
require('dotenv').config()
.env
在项目的根目录中
创建一个文件。将环境变量添加到新行中NAME=VALUE
。例如:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
现在
process.env
包含文件中的键和值.env
:
const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})
3.date-fns
Date- fns与lodash相似,但设计用于日期。在浏览器和Node.JS中提供一套完整但简单且一致的JavaScript日期操作工具。
来源date-fns
安装
yarn add date-fns
应用
date-fns示例:
import { compareAsc, format } from 'date-fns'
format(new Date(2014, 1, 11), 'yyyy-MM-dd')
//=> '2014-02-11'
const dates = [
new Date(1995, 6, 2),
new Date(1987, 1, 11),
new Date(1989, 6, 10),
]
dates.sort(compareAsc)
//=> [
// Wed Feb 11 1987 00:00:00,
// Mon Jul 10 1989 00:00:00,
// Sun Jul 02 1995 00:00:00
// ]
带有示例和用例的文档。
4.文扬
Bunyan是用于Node的易于使用且功能强大的JSON日志记录库。
资料来源
安装
yarn add bunyan
请注意: CLI
bunyan
编写为与所有版本的Bunyan日志兼容(在一定程度上)。所以,你可以在全局安装:yarn add global bunyan
进入这个工具PATH
,然后使用本地本仁的安装应用程序。
应用
Bunyan是用于Node.js服务的简单快速的JSON日志记录库。
// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");
如果您运行,这是返回控制台的内容
node hi.js
。
5.拉姆达
Ramda是一个实用且有用的功能样式库。它强调纯功能风格。不变性和无副作用功能是Ramda设计理念的核心。这种方法可以帮助您编写简单,优雅的代码。
来源ramda
安装
yarn add ramda
应用
import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!');
greet('Alice'); //=> 'Hello, Alice!'
代码示例
6.调试
Debug是一个模仿Node.JS调试技术的微型JavaScript调试实用程序。
调试源
安装
yarn add debug
应用
调试提供了一个功能。只需将模块的名称传递给此函数,它将返回经过修饰的版本
console.error
以传递调试语句。
const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'My App name';
log('booting %o', name);
http.createServer((req, res) => {
log(req.method + ' ' + req.url);
res.end('debug examplen');
}).listen(3200, () => {
log('listening');
});
//
// DEBUG=http:server node app.js
显示或隐藏模块整体或部分调试输出。
7.平
取平对象并对其进行展平。您还可以折叠键分隔的对象。[注意。翻译 -不仅句点可以是分隔符]。
来源平
安装
yarn add flat
应用
const flatten = require('flat')
flatten({
key1: {
keyA: 'valueI'
},
key2: {
keyB: 'valueII'
},
key3: { a: { b: { c: 2 } } }
})
// {
// 'key1.keyA': 'valueI',
// 'key2.keyB': 'valueII',
// 'key3.a.b.c': 2
// }
8. JSON5
JSON5 数据交换格式是JSON的超集,旨在通过扩展其语法以包括一些ECMAScript 5.1功能来减轻JSON的某些限制。
JSON5来源
安装
yarn add json5
const JSON5 = require('json5')
应用
注意文件扩展名。JSON5是超集,是JSON的扩展。
{
//
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}
9. ESLint
ESLint是避免错误并为开发团队设置编码标准的好工具。ESLint是用于识别和表示ECMAScript / JavaScript代码中的模式的工具。
ESLint来源
安装与应用
yarn add eslint
然后设置配置文件:
./node_modules/.bin/eslint --init
之后,可以在任何文件或目录中运行ESLint,例如:
./node_modules/.bin/eslint yourfile.js
文档,其中包含许多入门和设置示例。
10. PM2
PM2是具有内置负载平衡器的生产过程管理器。它使您可以始终保持应用程序运行,无需停机即可重新加载它们,并简化常见的系统管理任务。
来源pm2
安装
yarn add global pm2
应用启动
您可以像这样运行任何应用程序(Node.js,Python,Ruby,二进制文件
$PATH
等):
pm2 start app.js
您的应用程序现在在守护程序的控制下运行,并得到持续监控和维护。了解有关流程管理的更多信息,快速入门。
这是列出所有正在运行的应用程序的方法:
pm2 ls
请查阅官方文档以获取功能和特性的完整列表。
11.头盔
头盔可帮助通过HTTP标头保护快递应用程序。这不是灵丹妙药,但可以提供帮助。
头盔来源
安装
yarn add helmet
应用
Helmet
以Connect风格编写,并且与Express等框架兼容。如果您需要Koa支持,请参阅koa-helmet
。)
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
头盔功能是11种较小的中间件的包装。换句话说,相当于
// ...
app.use(helmet());
// ... :
app.use(helmet.contentSecurityPolicy());
app.use(helmet.dnsPrefetchControl());
app.use(helmet.expectCt());
app.use(helmet.frameguard());
app.use(helmet.hidePoweredBy());
app.use(helmet.hsts());
app.use(helmet.ieNoOpen());
app.use(helmet.noSniff());
app.use(helmet.permittedCrossDomainPolicies());
app.use(helmet.referrerPolicy());
app.use(helmet.xssFilter());
12.压缩
压缩是一种数据压缩工具。
压缩源
安装
yarn add compression
应用
与Express一起使用此模块时,或
connect
仅compression()
在中间件中调用。通过中间件的请求将被压缩。
const compression = require('compression')
const express = require('express')
const app = express()
//
app.use(compression())// ...
您使用什么工具来使用NodeJS?
通过在线SkillFactory课程,了解如何从头开始或在技能和薪资水平上获得高知名度的职业的详细信息:
- JavaScript课程(12个月)
- - (8 )
- Java- (18 )
E