node.js
文章平均质量分 82
学习node.js
夏安
这个作者很懒,什么都没留下…
展开
-
如何在 Node.js 应用程序中处理大数
在 JavaScript 生态系统中,你可以使用 `BigInt` 来处理大整数。但是,你也可以使用具有类似于 `BigInt` 功能的第三方库。本文将是使用 `BigInt` 和提供类似功能的流行库管理大数的完整指南。我们还将比较第三方库的用例、优势和劣势。原创 2023-06-25 22:39:24 · 1266 阅读 · 0 评论 -
Bun vs. Node.js
在本文中,我们将介绍最近在技术领域引起轰动的新的 Bun 运行时。我们将讨论运行时是做什么的,以及为什么一些开发人员转而使用 Bun。我们还将进行一些基准测试,看看 Bun 是否真的像 Bun 团队所说的那样拥有最快的运行时间。原创 2023-06-19 16:57:37 · 1467 阅读 · 0 评论 -
常见 Node.js 版本管理器比较:nvm、Volta 和 asdf
随着 Node.js 的发展,能够管理不同版本的运行时以确保兼容性和稳定性非常重要。这就是 Node.js 版本管理器的用武之地!在本文中,我们将比较和对比三种流行的 Node.js 版本管理器:**nvm、volta** 和 **asdf,**来帮助你为你的开发环境选择合适的版本管理器。原创 2023-06-10 11:26:20 · 2480 阅读 · 0 评论 -
前端开发人员使用的顶级 Node.js 框架介绍
在本文中,我们介绍了很多内容,首先介绍了为什么应该使用框架、框架的类型以及关于不同框架的一些统计数据。然后我们浏览了五个最流行的框架,包括 Express、Koa、Socket.io、Fastify 和 NestJS。希望本文能让你更好地了解每个框架的不同之处。原创 2023-02-21 15:11:50 · 3869 阅读 · 0 评论 -
Node 中的 Events
Node 程序中的对象会产生一系列的事件,它们被称为事件触发器(event emitter),例如一个 HTTP Server 会在每次有新连接时触发一个事件,一个 Readable Stream 会在文件打开时触发一个事件等。在实际的开发中,通常不会直接使用 Event 模块来进行事件处理,而是选择将其作为基类进行继承的方式来使用 Event,在 Node 的内部实现中,凡是提供了事件机制的模块,都会在内部继承 Event 模块。方法接受两个参数:需要监听的事件的名称,当事件触发时需要调用的函数。...原创 2022-08-05 15:42:37 · 1134 阅读 · 0 评论 -
Koa 源码剖析
本文主要从源码的角度来讲述 Koa,尤其是其中间件系统是如何实现的。跟 Express 相比,Koa 的源码异常简洁,Express 因为把路由相关的代码嵌入到了主要逻辑中,因此读 Express 的源码可能长时间不得要领,而直接读 Koa 的源码几乎没有什么障碍。Koa 的主要代码位于根目录下的 lib 文件夹中,只有 4 个文件,去掉注释后的源码不到 1000 行,下面列出了这 4 个文件的主要功能。首先回忆一下一个 Koa 应用的结构是什么样子的。Koa 的启动过程大致分为以下三个步骤:我们逐步来看原创 2022-06-29 11:03:28 · 440 阅读 · 0 评论 -
Koa 快速入门
Koa 是 Express 的原班开发人马使用 ES2015 中的新特性(主要是 )重新打造了新的 Web 框架——Koa,Koa 的初衷就是彻底解决在Node Web开发中的异步问题,在 ES2015 还没有被 Node 完全支持的时候,运行 Koa 项目需要在启动 Node 时加上参数。Koa 的理念与 Connect 更加相似,内部没有提供任何中间件,Express 中保留的静态文件和路由也被剔除,仅仅作为中间件的调用的脚手架。Koa 的发展存在 Koa1.x 和 Koa2 两个阶段,两者之间的区别原创 2022-06-28 21:04:12 · 3078 阅读 · 2 评论 -
Node 中的 Buffer 对象
是 Node 特有(区别于浏览器JavaScript)的数据类型,主要用来处理二进制数据,在前端 JavaScript 中,和二进制数据打交道的机会比较少(ES20l5增加了类型,用来操作二进制数据流,Node 也可以使用该类型)。而Node在进行Web开发时经常需要和前端进行数据通信,二进制数据流十分常见(例如传输一张 gif 图片),因此 Node 除了外,还内置了这一数据类型,它是Node作为运行时对JavaScript做的扩展。属于固有(built-in)类型,因此无须使用进行引入。在文件操作和网原创 2022-06-07 13:07:20 · 609 阅读 · 0 评论 -
Node 中的 Process 对象
是一个全局对象,即 global 对象的属性,无须声明即可访问。它用于描述当前 Node 进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要和它打交道。每个Node进程都有独立的对象。该对象中存储了当前进程的环境变量,也定义了一些事件。下面是一些例子:1. 环境变量直接在 Node 中执行:会得到一大串和当前进程相关的环境变量或者全局变量,你可以在其中查看你当前使用的 Node 版本号等一些信息。输出结果:例如开发者可以在代码中判断当前正在运行的 Node 属于原创 2022-06-06 14:27:10 · 297 阅读 · 0 评论 -
深入了解 Node 的多进程服务
我们现在已经知道了是单线程运行的,这表示潜在的错误有可能导致线程崩溃,然后进程也会随着退出,无法做到企业追求的稳定性;另一方面,单进程也无法充分多核CPU,这是对硬件本身的浪费。社区本身也意识到了这一问题,于是从0.1版本就提供了模块,用来提供多进程的支持。模块中包括了很多创建子进程的方法,包括、、、等等。它们的定义如下:在这4个API中以最为基础,因为其他三个API或多或少都是借助实现的。方法的声明格式如下:方法会使用指定的来生成一个新进程,执行完对应的后子进程会自动退出。该命令返回一个对象,这代表开发原创 2022-06-05 19:21:04 · 477 阅读 · 0 评论 -
JS 事件循环 Node 篇
JS 事件循环 Node 篇之前介绍过浏览器中的事件循环,本文将详细介绍 Node 中的事件循环。Node 中的事件循环比起浏览器中的 JavaScript 还是有一些区别的,各个浏览器在底层的实现上可能有些细微的出入;而 Node 只有一种实现,相对起来就少了一些理解上的麻烦。首先要明确的是,事件循环同样运行在单线程环境下,JavaScript 的事件循环是依靠浏览器实现的,而Node 作为另一种运行时,事件循环由底层的 libuv 实现。根据 Node.js 官方介绍,每次事件循环都包含了6个阶原创 2022-04-05 11:02:15 · 967 阅读 · 0 评论 -
在 Node.js 中处理大 JSON 文件
在 Node.js 中流式处理大 JSON 文件场景描述问题一:假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条记录?[ {"id": 1}, {"id": 2}, ...]问题二:同样一个大的 JSON 文件,我只读取其中的某一块数据,想只取 list 这个对象数组怎么办?{ "list": [], "otherList": []}在 Node.js 中我们可以基于以下几原创 2021-05-25 14:26:17 · 1140 阅读 · 2 评论 -
解决create-react-app 后 npm start or yarn start 中出现 的webpack版本问题
解决create-react-app 后 npm start or yarn start 中出现 的webpack版本问题错误提示信息There might be a problem with the project dependency tree.It is likely not a bug in Create React App, but something you need to fix locally.The react-scripts package provided by Creat原创 2021-01-18 15:28:30 · 340 阅读 · 0 评论 -
yrm的安装和使用
yrm的安装和使用我们经常下载包的速度很忙有的还会卡住几十分钟,所以我们需要切换镜像,这样我们下载的速度会快很多而yrm 是一个 yarn源管理器,允许你快速地在源间切换安装npm install -g yrm --registry=https://registry.npm.taobao.org列出当前可用的所有镜像源yrm ls使用淘宝镜像源yrm use taobao测试访问速度yrm test taobao查看当前使用的源npm config get registry原创 2021-01-16 17:21:06 · 1449 阅读 · 0 评论 -
常用的package.json以及React相关
常用的package.json以及React相关前言package.json 的简单介绍简单版的 package.json必备属性(name & version)name 字段version 字段描述信息(description & keywords)安装项目依赖(dependencies & devDependencies)简化终端命令(scripts)定义项目入口(main)发布文件配置(files)定义私有模块(private)指定模块适用系统(os)指定模块适用 cpu 架构原创 2020-08-19 17:07:03 · 1575 阅读 · 0 评论 -
在Express 中获取表单请求体数据
在Express 中获取表单请求体数据获取 GET 请求参数获取 POST 请求体数据安装配置获取 GET 请求参数Express 内置了一个 API , 可以直接通过 req.query 来获取console.log(req.query)获取 POST 请求体数据在 Express 中没有内置获取表单POST 请求体的 API ,这里我们需要使用第三方包:body-parser安装npm i -S body-parser配置const express = require('expr原创 2020-08-18 15:42:00 · 672 阅读 · 0 评论 -
node 中第三方模块的加载过程原理
node 中第三方模块的加载过程原理凡是第三方模块都必须通过 npm 来下载使用的时候就可以通过require('包名') 的方式来进行加载才可以使用不可能有任何一个第三方包和核心模块的名字是一样的既不是核心模块、也不是路径形式的模块加载过程如下:先找到当前文件所处目录中的 node_modules 目录然后是node_modules/包名然后是node_modules/包名/packagejson 文件然后找node_modules/包名/package.json 文件中的 mai原创 2020-08-05 19:07:05 · 300 阅读 · 0 评论 -
Express 的基本使用(创建一个简单的服务器)
Express 的基本使用(创建一个简单的服务器)const express = require('express')// 创建服务器应用程序// 相当于 http.creatServerconst app = express()// 公开指定目录// 只要这样做,就可以直接通过 /public/。。。 的方式访问 public 目录中的所有资源app.use('/public/', express.static('./public/'))//当服务器收到 get 请求 / 的时候,原创 2020-08-05 18:55:50 · 392 阅读 · 0 评论 -
node 读取文件内容并响应
node 读取文件内容并响应const http = require('http');const fs = require('fs')//创建 Serverconst server = http.createServer()// 监听request请求事件,设置请求处理函数server.on('request', (req, res) => { const url = req.url if (url === '/') { fs.readFile('./i原创 2020-07-31 13:14:53 · 510 阅读 · 0 评论 -
node获取请求我的客户端的地址
node获取请求我的客户端的地址const http = require('http');//创建 Serverconst server = http.createServer()// 监听request请求事件,设置请求处理函数server.on('request', (req, res) => { // http://127.0.9.1:3000/ / // http://127.0.8.1:3000/a /a // http://127.0.0.1:3原创 2020-07-30 13:49:32 · 1165 阅读 · 1 评论 -
用 Node.js 实现的最简单的 HTTP 服务器
用 Node.js 实现的最简单的 HTTP 服务器//app.js var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<h1>Node.js</h1>'...原创 2020-04-21 10:47:11 · 302 阅读 · 0 评论 -
node.js中模块和包
node.js中自定义模块首先创建一个module.js文件代码如下:/** * 定义一个对象 */const Hello = { hello() { console.log("Hello World!"); }}/** * 将模块导出 */module.exports = Hello然后接下来我们创建一个test.js文件代码如下/*...原创 2020-04-20 21:11:16 · 281 阅读 · 0 评论