![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
node
文章平均质量分 87
node
qdmoment
全局掌控,剖析网站终端建设
展开
-
智慧PG集成开发平台pgting-cli发布了
pgting-cli是一款node集成工作台,无需配置,开箱即用,pgting-cli主要提供本地组件开发环境,面板可视化设计等,和线上环境完全相同,数据一键同步。原创 2023-06-06 00:46:08 · 334 阅读 · 0 评论 -
形象化解读js事件循环以及node事件循环和浏览器事件循环的区别
node和浏览器都是js运行的环境,二者都给js提供了一个很强大的功能,事件循环。那么什么是事件循环呢,简单讲就是在单线程中为了实现程序的高效运行而设定的事件执行机制...原创 2020-04-28 01:12:35 · 2378 阅读 · 0 评论 -
node核心EventEmitter的应用总结
EventEmitter是node中应用非常广泛,不管是框架,还是脚手架,还是插件都可以看到eventEmitter的身影。比如我们去查看vue, react, webpack, egg, koa等框架或者插件的源码,都可以看到内部使用到了EventEmitter。那么到底什么是EventEmitter呢。总体介绍:进入node.js官网,eventEmitter的介绍有一大堆api,很多...原创 2020-03-30 20:36:15 · 722 阅读 · 0 评论 -
node在大前端中的应用
关于node的使用已经很久了,使用范围也很广,似乎有前端的地方就有node,那么来思考一个问题,node到底是用来干嘛的呢?本文从五个大的方面对该问题进行了解释。我们知道node的出现,让前端开发既ajax之后,有了全新的面貌,在开发效率,性能等层面都有质的提升。归纳一直是知识提升的重要一环,参考了很多内容,本文对node的应用做了一个入门级的总结。读完本文,希望可以清楚地认识到node在...原创 2020-03-30 19:17:27 · 1644 阅读 · 0 评论 -
node 第三方模块系列------minimist轻量级的命令行参数解析引擎
总体介绍:node.js的命令行参数解析工具有很多,比如:argparse、optimist、yars、commander。optimist和yargs内部使用的解析引擎正是minimist,代码量也很少(只有几百行),非常适合研读。使用apilet parseArgs = require('minimist')let argv = parseArgs(args, opts={})...原创 2020-03-14 14:22:47 · 2077 阅读 · 0 评论 -
node 第三方模块系列----fs-extra 文件操作相关工具库
fs-extra模块 是基于fs 的文件操作相关工具库,封装了一些fs实现起来相对复杂的工具,主要使用方法如下:使用:let fse = require('fs-extra')常用api:1. copy 复制文件copy(src, dest, [option],callback)2. emptyDir 清空目录确保一个目录是空的。如果目录非空删除目录内容。如果目录不...原创 2020-03-14 11:24:37 · 2893 阅读 · 0 评论 -
node delegates解析及koa中应用
这是一个用来提升内部属性上的方法或者属性的包,换句话说就是把对象内部的属性暴露到根属性上。原理:通过原型链继承达到效果APIDelegate(proto, prop)用于创建一个 delegator 实例,用于把 proto 接收到的一些操作委托给它的 prop 属性进行处理。Delegate.auto(proto, targetProto, targetProp)根据 t...原创 2019-11-11 18:40:02 · 321 阅读 · 0 评论 -
compiler、compilation、NormalModuleFactory、ContextModuleFactory、ResolverFactoy的hooks来源,及tapable核心模块的结构
最近很多人提问webpack中的钩子机制底层是怎样的,本文从模块层面出发,分析一下hooks钩子的传递,以及hook这个底层数据结构的实现。compiler中的hooks:源码如下class Compiler extends Tapable { constructor(context) { super(); this.hooks = { /** @type {Sync...原创 2019-10-30 17:15:47 · 1629 阅读 · 0 评论 -
node核心模块-buffer(缓冲器)
buffer介绍背景:在引入TypedArray之前,JavaScript 语言没有用于读取或操作二进制数据流的机制。功能:用于在 TCP 流、文件系统操作、以及其他上下文中与八位字节流进行交互,现在可以使用TypedArray,Buffer类以更 优化和更适合 Node.js 的方式实现了Uint8ArrayAPI。特征:1,Buffer类的实...原创 2019-10-30 10:22:05 · 205 阅读 · 0 评论 -
从源码分析express中间件和路由添加方式的区别
总览:* app.use(),app.get()添加的中间件在一个router实例中的stack栈中* app.get()在router中的layer中又创建了一个Route实例,Route实例中的stack栈中又存放了一个layer中间层* app.Router().get()添加的中间件在另外一个router实例中* app.Router生成一个实例,app.Router().ge...原创 2019-10-16 17:17:35 · 174 阅读 · 0 评论 -
express中间件实现原理和源码分析
中间件的添加逻辑:如下图中间件添加实现主要源码:请求路由绑定逻辑:如下图:路由绑定相关源码:接收请求处理逻辑:接收请求主要源码:中间件的添加逻辑:如下图这里是app.use()逻辑其他方式参见从源码分析express中间件添加方式的区别中间件添加实现主要源码:app.use = function use(fn) { var offset = 0; ...原创 2019-10-15 18:05:15 · 417 阅读 · 0 评论 -
express源码解析思维导图(4.17.1版本)
源码结构:入口文件为express文件,思维导图如下,下图是我根据代码运行逻辑和关联关系作出的思维导图,有错误的地方,提出来哦原创 2019-10-15 17:35:41 · 554 阅读 · 0 评论 -
koa中间件实现原理和源码解析
在实际使用中可以看出,koa中间件的执行是洋葱模型,请求进入时依次执行中间件,返回结果时再反过来依次执行中间件,如下图:那么这种执行机制是如何实现的呢,接下来探讨一下该执行机制的实现原理:首先看koa中间件执行源码: listen(...args) { debug('listen'); const server = http.createServer(th...原创 2019-10-14 13:29:11 · 454 阅读 · 0 评论 -
node服务端开发必备知识点总结
node.js基础:node.js发展历史 环境搭建 npm包管理 异步编程 单元测试 应用场景 事件循环 异常处理 node核心模块http/https/http2 Net(网络) Event(事件) Stream(流) Buffer(缓冲区) Crypto(加密) FS(文件) Timer(定时器) ...原创 2019-09-10 17:15:55 · 205 阅读 · 0 评论 -
commander库的作用和简单总结
随着网站工程的复杂化,我们不希望把有限的时间浪费到一些诸如文件复制,打包配置等重复的工作上,我们希望在创建新的项目工程时可以使用模板直接初始化项目,这对于效率和团队使用是比较方便的。对于前端工程化而言,模板的封装许多是基于cli,这时候就要用到commander库,进而简化cli。commander简单总结://添加命令:myCommand.command('init')//命令添...原创 2019-01-17 14:13:43 · 5008 阅读 · 2 评论 -
命令行集成工具开发及分布式路由recdi-cli前端脚手架实例
在前端开发工程中,实现项目自动化和工程化越来越重要,而每次搭建前端项目的时候,很多文件都源自复制粘贴,这是一些重复的工作。虽然现在已经有了很多大的脚手架生成工具,像create-react-app, vue-cli,但是这些工具生成的脚手架可能和我们的业务场景相差较远,生成过后还需要手动更改,也是比较麻烦的,另外,对于自己封装的脚手架可以加入定制的东西,对于开发团队而言,扩展性较强。前端脚手架...原创 2019-02-20 00:15:32 · 217 阅读 · 0 评论 -
node核心模块path,fs的常用api
node作为js在服务端运行的容器,以及npm包依赖管理工具,使得node的应用越来越广泛。node有很多模块和api,这也导致很多人不知道怎么学习node,而掌握其核心模块的核心api是首要的。fs模块 提供文件的读写操作,具有异步和同步的api:fs.readFileAsync(path,'utf8', (err, data) => {})fs.existsSync(path...原创 2019-02-20 00:22:49 · 266 阅读 · 0 评论 -
koa核心工作原理解析
koa的源码有四个文件,application.js, context.js, request.js, response.js大致工作流程:application借助http模块创建一个服务,同事接收传递给该服务的参数和callback回调函数;callback中通过createContext函数将request, response的属性和方法赋值给context;compose...原创 2019-03-07 10:09:09 · 272 阅读 · 0 评论 -
node安装node-pre-gyp和node-sass报错的原因以及解决办法
安装node-pre-gyp和node-sass的原因是由于webpack@4.30.0 › watchpack@1.6.0 › chokidar@2.1.5 › fsevents@^1.2.7 没有支持 node 12 的 pre build binaryhttps://github.com/paulmillr/chokidar/issues/797 要 chokidar 3.x 才会被...原创 2019-04-24 10:11:59 · 13328 阅读 · 0 评论 -
关于npm包bin配置和全局包软连接
npm包初始化后会有bin目录,里面放的是包的命令可以将这个命令设置为全局命令软链接 执行 npm link这时执行刚刚设置的命令会报错,由于没有指定运行环境一个新建的shell中执行指定的脚本,在执行这个脚本的时候,我们需要来指定这个脚本的解释程序是node。还要指定node的路径/usr/bin/env就是告诉系统可以在PATH目录中查找。 所以配置#!/usr/bin/...原创 2019-05-22 23:11:55 · 5237 阅读 · 0 评论 -
node中Async模块的用法
const async = require('async');seriesparallelparallelLimitwhilstwaterfallcompose1,series series(tasks, [callback]) 顺序执行数组、集合内的函数,//tasks传的是一个数组函数async.series([ function(cal...原创 2019-06-03 11:34:26 · 2753 阅读 · 0 评论 -
yarn常用命令和总结
Yarn 换源Yarn 源仓库包下载不稳定// 查看 yarn 配置yarn config get registry或者yarn config list> registry: 'https://registry.yarnpkg.com'安装淘宝镜像yarn config set registry https://registry.npm.taobao.orgYarn 常用命令...原创 2019-06-20 11:21:16 · 2222 阅读 · 0 评论 -
npm缓存查询和bug解决
.npmrc配置文件快捷修改.npmrc配置文件npmconfigedit.npmrc配置文件地址npmconfiglistnpm缓存目录npm configgetcachenpm全局node包位置npm configgetprefix或者npmroot -g修改npm全局文件位置及缓存文件位置npm config se...原创 2019-07-02 23:49:24 · 1268 阅读 · 0 评论 -
lerna中使用workspace
在lerna中启用workspace:1,lerna.json中lerna的设置{ ... "npmClient": "yarn", "useWorkspaces": true, ...}lerna与yarn workspace有很好的相性,设置useWorkspaces等价于使用bootstrap命令的--use-workspaces选项2,根目录下的pac...原创 2019-07-12 11:27:11 · 5523 阅读 · 0 评论 -
lerna开发流程(入坑和出坑)
1, lerna publish发布失败后怎样操作,如下:采用 from-packagePositionalsbumpfrom-gitIn addition to the semver keywords supported bylerna version,lerna publishalso supports thefrom-gitkeyword. This will ide...原创 2020-06-14 08:08:30 · 18244 阅读 · 0 评论 -
node.js中path模块解析(resolve,join)
node的path模块经常被使用,但是path的resolve和join两个方法很容易混淆,本篇主要介绍二者的核心区别及各自的使用方式。 path.solvepath.resolve([from ...], to)1,将to解析为绝对路径;2,给定的路径从左向右处理,后面每个 path 被依次解析,直到构造完成一个绝对路径;path.joinpath.join([pa...原创 2018-12-19 16:26:17 · 315 阅读 · 0 评论