龙空技术网

2020年14个最有用的NodeJS库

闻数起舞 2494

前言:

此刻同学们对“node 中间件”大概比较关心,大家都想要剖析一些“node 中间件”的相关资讯。那么小编同时在网摘上汇集了一些关于“node 中间件””的相关文章,希望朋友们能喜欢,各位老铁们一起来学习一下吧!

> Photo by Ivo Rainha on Unsplash

Express

快速,简单,极简的节点Web框架

对…有好处

· 易于处理多种类型的请求,例如GET,PUT,POST和DELETE请求

· 快速构建单页,多页和混合Web应用程序

每周下载

1100万

License

MIT

备择方案

Koa, Hapi, Meteor

cheerio

Cheerio解析标记(例如HTML),并提供用于遍历/操纵结果数据结构的API

const cheerio = require('cheerio');

const $ = cheerio.load('<ul id="fruits">...</ul>');

对…有好处

· 制作网络爬虫/刮板

· 简单直观的语法和用法

每周下载

420万

License

MIT

备择方案

jsdom, puppeteer

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: "<b>Hello world?</b>"});
对…有好处

· 轻松使用SMTP发送邮件

每周下载

98万

License

MIT

备择方案

sendmail, emailjs

socket.io

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

每周下载

3M

License

MIT

备择方案

pusher

Faker

在浏览器和node.js中生成大量假数据

var faker = require('faker');var randomName = faker.name.findName(); // Rowan Nikolausvar randomEmail = faker.internet.email(); // Kassandra@erich.bizvar randomCard = faker.helpers.createCard(); // random contact card
对…有好处

· 在API后端构建尚未完成的情况下构建前端UI并与数据进行交互

· 多种API方法,包括地址,公司,数据库,图像,名称(firstName,lastName)

每周下载

140万

License

MIT

备择方案

casual

morgan

Node.js的HTTP请求记录器中间件

例如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!')})
对…有好处

· 将请求记录在控制台,文件,数据库中

· 调试和日志历史记录

每周下载

2M

License

MIT

http-errors

为Express,Koa,Connect等创建HTTP错误。

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

每周下载

27M

License

MIT

body-parser

Node.js主体解析中间件

在处理程序之前在中间件中解析传入的请求主体,该处理程序在req.body属性下可用

var express = require('express')var bodyParser = require('body-parser')var app = express()// parse application/x-www-form-urlencodedapp.use(bodyParser.urlencoded({ extended: false }))// parse application/jsonapp.use(bodyParser.json())
对…有好处

· 解释请求正文

· 许多选项,例如inflate,type,verify

每周下载

1300万

License

MIT

sequelize

Sequelize是用于Postgres,MySQL,MariaDB,SQLite和Microsoft SQL Server的基于承诺的Node.js ORM

它具有可靠的事务支持,关系,急切和延迟加载,读取复制等功能

const sequelize = new Sequelize  ('database', 'username', 'password',     {   host: 'localhost',   dialect: /* one of 'mysql'      | 'mariadb' | 'postgres' | 'mssql' */ });
对…有好处

· Node.js ORM

每周下载

720K

License

MIT

passport

Passport是Node.js的Express兼容身份验证中间件

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等…登录)

每周下载

810K

License

MIT

Dotenv

Dotenv是一个零依赖模块,可将环境变量从.env文件加载到process.env中

将配置与代码分开存储在环境中

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 fileDB_HOST=localhostDB_USER=rootDB_PASS=s1mpl3
对…有好处

· 加载环境变量,例如AWS,sql用户名,部署,连接到其他工具所需的密码

· 将配置与代码分开存储在环境中

每周下载

10M

License

BSD-2

multer

Multer是用于处理multipart / form-data的node.js中间件,主要用于上传文件

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})
对…有好处

· 易于上传多部分/表单数据文件

每周下载

92000

License

MIT

axios

基于Promise的HTTP客户端,用于浏览器和node.js

const axios = require('axios');// Make a request for a user with a given IDaxios.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

每周下载

960万

License

MIT

CORS

CORS是用于提供Connect / Express中间件的node.js程序包,可用于启用具有各种选项的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问题

每周下载

370万

License

MIT

普通纸条

您知道我们有四个出版物和一个YouTube频道吗? 您可以在我们的主页plainenglish.io上找到所有这些内容-通过对我们的出版物进行关注并订阅我们的YouTube频道来表达爱意!

> Photo by Kevin Ku on Unsplash

(本文翻译自GP Lee的文章《14 Most Useful NodeJS Libraries in 2020》,参考:)

标签: #node 中间件