Express
快速,简单,极简的节点Web框架
cheerio
const cheerio = require(\’cheerio\’);
const $ = cheerio.load(\’
-
…
\’);
nodemailer
从Node.js发送电子邮件
const nodemailer = require("nodemailer"); let testAccount = await nodemailer.createTestAccount(); let transporter = nodemailer.createTransport({ host: "smtp.ethereal.email", port: 587, secure: false, auth: { user: testAccount.user, pass: testAccount.pass } }); let info = await transporter.sendMail({ from: \'"Fred Foo " <foo@example.com>\', to: "bar@example.com, baz@example.com", subject: "Hello ✔", text: "Hello world?", html: "Hello world?" });
socket.io
const server = require(\'http\').createServer(); const io = require(\'socket.io\')(server); io.on(\'connection\', client => { client.on(\'event\', data => { ... }); client.on(\'disconnect\', () => { ... }); }); server.listen(3000);
好处
· 实施实时分析,二进制流,实例消息传递和文档协作
· 知名用户包括Microsoft Office,Yammer和Zendesk
Multer
地址:https://www.npmjs.com/package/multer
Multer是一个Node.js中间件,用于处理 multipart/form-data 类型的表单数据,主要用于文件上传。
Moment
地址:https://www.npmjs.com/package/moment
一个轻量级的JavaScript日期库,用于解析,验证,操作和格式化日期。
lodash
地址:https://www.npmjs.com/package/lodash
Lodash 减少数组、数字、对象、字符串等工作的麻烦,它让 JS 变得更容易。
chalk
地址:https://www.npmjs.com/package/chalk
chal 可译为“粉笔”,node 终端样式库,主要功能为使输出不再单调,添加文字背景,改变字体颜色
chalk
地址:https://www.npmjs.com/package/chalk
chal 可译为“粉笔”,node 终端样式库,主要功能为使输出不再单调,添加文字背景,改变字体颜色
validator
地址:https://www.npmjs.com/package/validator
轻量,快捷,易扩展的前端的验证工具,无其他包依赖无样式,可以适合绝大部分使用情景,开发人员可根据项目环境自行组装反馈的错误信息给用户。
JSDoc
地址:https://www.npmjs.com/package/jsdoc
JSDoc是一个根据javascript文件中注释信息,生成JavaScript应用程序或库、模块的API文档 的工具。
Helmet
地址:https://www.npmjs.com/package/helmet
Helmet是一系列帮助增强Node.JS之Express/Connect等Javascript Web应用安全的中间件。
一些著名的对Web攻击有XSS跨站脚本, 脚本注入 clickjacking 以及各种非安全的请求等对Node.js的Web应用构成各种威胁,使用Helmet能帮助你的应用避免这些攻击。
Crypto-js
地址:https://www.npmjs.com/package/crypto-js
CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。
forever
可能是确保给定 node 脚本连续运行的最常用工具。遇到任何意外故障时,可以使你的 Node.js 流程保持在生产中。
bluebird
功能全面的 Promises / A + 实现,具有出色的性能
Faker
var faker = require(\'faker\'); var randomName = faker.name.findName(); // Rowan Nikolaus var randomEmail = faker.internet.email(); // Kassandra@erich.biz var randomCard = faker.helpers.createCard(); // random contact card
好处
· 在API后端构建尚未完成的情况下构建前端UI并与数据进行交互
· 多种API方法,包括地址,公司,数据库,图像,名称(firstName,lastName)
morgan
例如GET / 200 51.267 ms — 1539
morgan
(\':method :url :status :res[content-length] - :response-time ms\') --- var express = require(\'express\') var morgan = require(\'morgan\') var app = express() app.use(morgan(\'combined\')) app.get(\'/\', function (req, res) { res.send(\'hello, world!\') })
好处
· 将请求记录在控制台,文件,数据库中
· 调试和日志历史记录
http-errors
app.use(function (req, res, next) { if (!req.user) return next(createError(401, \'Please login to view this page.\')) next() })
好处
· 易于发送错误响应
· 许多错误属性可用
expose
headers
message
status
statusCode
body-parser
在处理程序之前在中间件中解析传入的请求主体,该处理程序在req.body属性下可用
var express = require(\'express\') var bodyParser = require(\'body-parser\') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json())
好处
· 解释请求正文
· 许多选项,例如inflate,type,verify
sequelize
它具有可靠的事务支持,关系,急切和延迟加载,读取复制等功能
const sequelize = new Sequelize
(\'database\', \'username\', \'password\', { host: \'localhost\', dialect: /* one of \'mysql\' | \'mariadb\' | \'postgres\' | \'mssql\' */ });
好处
· Node.js ORM
passport
Passport的唯一目的是对请求进行身份验证,它通过一组称为策略的可扩展插件来完成
passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ username: username }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } if (!user.verifyPassword(password)) { return done(null, false); } return done(null, user); }); } ));
好处
· Node.js身份验证
· 与OAuth和OpenID集成(Facebook,Twitter等…登录)
Dotenv
将配置与代码分开存储在环境中
require(\'dotenv\').config() const db = require(\'db\') db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS }) // .env file DB_HOST=localhost DB_USER=root DB_PASS=s1mpl3
好处
· 加载环境变量,例如AWS,sql用户名,部署,连接到其他工具所需的密码
· 将配置与代码分开存储在环境中
multer
var express = require(\'express\') var multer = require(\'multer\') var upload = multer({ dest: \'uploads/\' }) var app = express() app.post(\'/profile\', upload.single(\'avatar\'), function (req, res, next) { // req.file is the `avatar` file // req.body will hold the text fields, if there were any }) app.post(\'/photos/upload\', upload.array(\'photos\', 12), function (req, res, next) { // req.files is array of `photos` files // req.body will contain the text fields, if there were any })
好处
· 易于上传多部分/表单数据文件
axios
const axios = require(\'axios\'); // Make a request for a user with a given ID axios.get(\'/user?ID=12345\') .then(function (response) { // handle success console.log(response); }) .catch(function (error) { // handle error console.log(error); }) .finally(function () { // always executed });
好处
· 从node.js发出HTTP请求
· 从浏览器发出XMLHttpRequests
· 支持Promise API
CORS
var express = require(\'express\') var cors = require(\'cors\') var app = express() app.use(cors()) app.get(\'/products/:id\', function (req, res, next) { res.json({msg: \'This is CORS-enabled for all origins!\'}) }) app.listen(80, function () { console.log(\'CORS-enabled web server listening on port 80\') })
好处
· 轻松处理CORS问题