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

2020年14个最有用的NodeJS库(node用什么数据库)

ccwgpt 2025-05-10 20:18 29 浏览 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)

相关推荐

一个基于.Net Core遵循Clean Architecture原则开源架构

今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...

AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%

写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...

OneCode低代码平台的事件驱动设计:架构解析与实践

引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...

国内大厂AI插件评测:根据UI图生成Vue前端代码

在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...

AI+低代码技术揭秘(二):核心架构

本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...

GitDiagram用AI把代码库变成可视化架构图

这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...

30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...

AI写代码越帮越忙?2025年研究揭露惊人真相

近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...

一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具

一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...

5分钟掌握 c# 网络通讯架构及代码示例

以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...

从复杂到优雅:用建造者和责任链重塑代码架构

引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...

低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈

专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...

框架设计并不是简单粗暴地写代码,而是要先弄清逻辑

3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...

大佬用 Avalonia 框架开发的 C# 代码 IDE

AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...

轻量级框架Lagent 仅需20行代码即可构建自己的智能代理

站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...

取消回复欢迎 发表评论: