百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

2020年14个最有用的NodeJS库 node.js 用什么数据库

qiyuwang 2024-10-31 15:51 9 浏览 0 评论


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 Nikolaus
var randomEmail = faker.internet.email(); // Kassandra@erich.biz
var 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-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.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 file
DB_HOST=localhost
DB_USER=root
DB_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 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

每周下载

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频道来表达爱意!

(本文翻译自GP Lee的文章《14 Most Useful NodeJS Libraries in 2020》,参考:https://medium.com/javascript-in-plain-english/14-most-useful-nodejs-libraries-in-2020-9e0a5e72d1d8)

相关推荐

windows开启telnet服务,检测远程服务端口是否可以连通

本文介绍windwos开启telnet服务,telnet服务一般可以用于检测远程主机的某个端口服务是否可以连通,在日常的工作中,我们经常会遇到在本地的windows检测远程服务端口是否可以连通。win...

仅在Web登录新华三交换机条件下启用设备Telnet登录方式

概述Web登录新华三交换机可以在“网络-服务”页面中启用设备Telnet服务或SSH服务,也可以在“设备-管理员”设置管理员用户的可用服务,然而,在设备Web页面中,无法设置lineVTY用户线【l...

思科交换机,路由器如何关闭telnet 开启ssh服务

SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。今天我们就来说说思科交换机,路...

智能化弱电行业常用的DOS命令,掌握了你也能成为...

前言在做智能化弱电项目时,前端摄像头设备安装结束后,我们会对网络摄像头进行调试,调试过程中会遇到前端摄像头没有图像或者图像出来了画面卡顿的现象。我们会采用ping命令来测试网络的连通性和网络承载能力。...

「干货」eNSP模拟器之配置Telnet登录

配置说明:配置Telnet,使R2(模拟PC)通过SW1登录到R1进行管理和配置。操作步骤:system-view##进入系统视图[Huawei]sysnameR1##改名为R1[R1]int...

win11开启telnet服务怎么操作 win11打开telent指令是什么

telnet服务是我们在进行远程连接的时候,必须要打开的一项功能。但是有不少用户们不清楚在windows11系统中怎么开启telnet服务。今天小编就使用详细的图文教程,来给大家说明一下打开telen...

华三(H3C)交换机Telnet的远程登陆

一,配置交换机管理IP[SW1]vlan20//创建管理vlan[SW1]interfacevlan20//进入vlan接口[SW1-Vlanif20]ipaddress192.168....

win10 telnet命令怎么查看端口是否打开

可能大家也会遇到这个问题,win10telnet命令查看端口是否打开的步骤是什么?具体方法如下:1、键盘输入快捷键WIN+R,打开运行窗口。2、输入cmd,点击确定按钮。3、弹出cmd命令行窗...

Windows 7如何打开Telnet功能(win7系统打开telnet)

Windows7默认安装后是没有开启telnet客户端功能的,例如,我们在开始菜单中输入cmd,然后使用telnet命令,会弹出下图提示:‘telnet’不是内部或外部命令,也不是可运行程序或批处理文...

为锐捷路由器交换机开启web和telnet,实现轻松管理

笔者上一篇文章写了关于锐捷二层交换机配置教程,那么接下来讲一下锐捷的路由交换设备配置web、telnet技巧。同样,今天的教程也是基于命令行,比较简单,适合新手小白进行学习。准备工作配置前准备:con...

一文学会telnet命令的用途和使用方法

Telnet是一个古老的远程登录协议,可以让本地计算机获得远程计算机的工作能力。它采用了TCP的可靠连接方式,可以连接任何网络互通的远程计算机。不过由于它采用了明文传输方式,存在安全风险,目前已经很少...

Telnet命令是什么?如何使用?(telnet命令在哪里开启)

telnet命令是一个常用的远程登陆工具,使用它,我们可以快捷地登陆远程服务器进行操作。那么如何使用telnet命令呢?首先,我们需要打开telnet功能,任何电脑默认是关闭此功能的,开启方式如下:打...

win11系统如何开启telnet服务(拷贝版本)

  我们要知道,Telnet协议是Internet远程登陆服务的标准协议,可以使用户在本地计算机上完成远程主机的工作,不过对于一些刚接触win11中文版系统的用户来说,可能还不知道telnet服务在哪...

如何开启telnet客户端(如何开启telnet服务)

Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式,Telnet是常用的远程控制Web服务器的方法。工作中经常用到telnet客户端,但在windows...

Telnet 是什么,如何启用它?(telnet有什么用)

对于Internet等TCP/IP网络,Telnet是一个终端仿真程序。Telnet软件在您的系统上运行并将您的个人计算机链接到网络服务器。它将所有数据转换为纯文本这一事实被认为是易受...

取消回复欢迎 发表评论: