首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NodeJS知识点梳理-第一篇

的人完全是可以胜任的,可以做一数据的操作。...js,那么我们的js引擎的作用就是让计算机认识我们的js,node是C++的,V8引擎是nodejs的核心,V8引擎其实也是C++的。...然后一个总的js统一调用就可以了,我们一个简单的例子: -我们新建一个工具js,这个目的是为了用户输入一个数据类型,我们输出他的数据类型 /** * @auhor clearlove * @...因为不接受的话我们还是找不到引用的方法 那这个时候就有人问了,我们一个方法这样,多个的时候怎么办呢?...: 1、大多数的Nodejs核心API都是采用惯用的异步事件驱动架构的(fs/http) 2、所有能触发事件的对象都是EventEmitter的实例 3、事件的流程是:引入模块->创建EventEmitter

1K10

揭秘 Node.js 底层架构

工程师已经成为了一种新兴职业,那么,带有传奇色彩的 Node.js 本身是怎么实现的呢?...二.Node.js 架构概览 JS 代码跑在 V8 引擎上,Node.js 内置的fs、http等核心模块通过 C++ Bindings 调用 libuv、c-ares、llhttp 等 C/C++... Node.js 量身打造,用 C 的跨平台异步 I/O ,提供了非阻塞的文件系统、DNS、网络、子进程、管道、信号、轮询和流式处理机制: 对于无法在操作系统层面异步去做的工作,通过线程池来完成,...(也不缓存数据),因此每个请求的内存占用极小 c-ares:一个 C ,用来处理异步的 DNS 请求,对应 Node.js 中dns模块提供的resolve()系列方法 OpenSSL:一个通用的加密...另一方面,通过 Bindings 也可以复用可靠的老牌开源,而不必手搓所有底层模块 以文件 I/O 例,读取当前 JS 文件内容并输出到标准输出: // readThisFile.js const

2.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

ajax跨域问题以及解决方案_js跨域请求的三种方法

,则给提示,如果不为空,则异步查询数据,后返回结果; 本次请求的页面是8082端口的,而响应的ajax路径却是8080端口的 前端代码—> <!...答案是生效了; Web页面上调用js文件时可以跨域,也就是后拥有”src”这个属性的标签都却拥有跨域的能力 那么我们转变思路,如果将异步请求转到js文件身上 比如我们可以这么做 后端可以接收到前端数据...; 但是这样看起来怪怪的,而且实际上这样异步请求中的url依然会被浏览器拦截 如果去掉这个url,会发生不可描述的事情,像这样—-整个span被页面代码填满, 那怎么处理呢?...因为如果是通过script来完成异步请求,那么返回的内容应该是一个js代码, 既然是这样,我们要想在span中添加返回的信息,那么我们不妨在前端一个方法,用于专门像span中添加信息—然后后端返回的信息来直接调这个方法就好了...我就想用这个方法,不想在额外定义一个别的showInfo方法,那么这个该怎么做呢?

3.1K20

webpack实战,手写loader和plugin

那如果把那些引用的 loader 改为我们的 loader ,该怎么处理呢?现在,我们来了解一下,如何手写一个简易的 loader ,并运用到我们的项目当中。2....', 'mondaylab'); this.callback(null, result);}---以上的代码意思,将入口文件 index.js 文件中的 monday 替换为 mondaylab...(4)在loader里面做一些异步的操作好了现在,如果我们想要给 loader 做一些异步操作,该怎么实现呢?...(5)loader路径自定义有一个很小的注意点就是,当我们在配置 webpack.config.js 文件中, loader 的路径时,每回都要 path.resolve 去寻找路径文件。...}通过上述代码,我们可以了解到,在(2)中,我们首先需要定义一个,之后呢,在一个构造器和一个 apply() 方法来调用。

34810

webpack实战,手写loader和plugin_2023-02-27

那如果把那些引用的 loader 改为我们的 loader ,该怎么处理呢?现在,我们来了解一下,如何手写一个简易的 loader ,并运用到我们的项目当中。2....', 'mondaylab'); this.callback(null, result);}---以上的代码意思,将入口文件 index.js 文件中的 monday 替换为 mondaylab...(4)在loader里面做一些异步的操作好了现在,如果我们想要给 loader 做一些异步操作,该怎么实现呢?...(5)loader路径自定义有一个很小的注意点就是,当我们在配置 webpack.config.js 文件中, loader 的路径时,每回都要 path.resolve 去寻找路径文件。...}通过上述代码,我们可以了解到,在(2)中,我们首先需要定义一个,之后呢,在一个构造器和一个 apply() 方法来调用。

52740

不可错过的Webpack核心知识点

loader如何编写 /** lib/loader/loader1.js */ /** 异步loader */ module.exports = function (source) {...Plugin 在webpack编译整个生命周期的特定节点执行特定功能 实现要点: 一个命名JS函数或者JS 在prototype上定义一个apply方法(供webpack调用,并且在调用时注入 compiler...它类似于 NodeJS 的 EventEmitter ,专注于自定义事件的触发和操作。...多进程系列 多进程阵营里有几位知名选手: thread-loader(v4以后的官方推荐) happypack(不怎么维护了) parallel-webpack(不怎么维护了) 这里只介绍一下 thread-loader...=,所以最好还是指定缓存文件路径 node_modules 内部) 这个仓库也很久没更新了 现有项目偶尔会出现更改代码不触发重新编译的情况,猜测可能与此插件有关 另外 webpack5 是否有自带的缓存策略或者官方维护的缓存插件还需要去了解一下

1K40

前端模块化理解

/myModel.js'); nameModule.printName(); 不同的实现对require时的路径有不同要求,一般情况可以省略js拓展名,可以使用相对路径,也可以使用绝对路径,甚至可以省略路径直接使用模块名...另一种解决思路是,用一套标准模板来封装模块定义,但是对于模块应该怎么定义和怎么加载,又产生的分歧。...如果函数,它应该只被执行一次。..., factory) 因为CMD推崇一个文件一个模块,所以经常就用文件名作为模块id;CMD推崇依赖就近,所以一般不在define的参数中依赖,而是在factory中。...很多人说requireJS是异步加载模块,SeaJS是同步加载模块,这么理解实际上是不准确的,其实加载模块都是异步的,只不过AMD依赖前置,js可以方便知道依赖模块是谁,立即加载,而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了那些模块

56720

基于koa定制属于自己的企业级框架

认识egg.js(阿里系框架) Egg.js 企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本。 ?...module.exports = app => { const { router, controller } = app; router.get('/', controller.home.index); }; 怎么接口...$service=initService(); 这时候路由怎么执行呢?需要添加异步逻辑。同时,把ctx挂载带app实例中。...约定 - config/config.js存放配置项 - key表示对应配置目标 - model存放数据模型 配置及其加载 配置sequelize连接配置项,config.js // 这里就是数据的配置.../middleware/logger.js 新建一个自己的logger中间件, middleware/logger.js module.exports = async (ctx, next) => {

2.2K30

webpack4.41+性能优化(高级篇)

有人可能会问了,这里在onlick事件里面,我没去点击按钮,没触发这个回调你怎么知道我回调函数里面有个预加载或者懒加载?...如果你不了解JS异步,可以看看这里JS 异步进阶【想要进大厂,更多异步的问题等着你】 4.提取公共代码(我想多说一点东西) optimization: { splitChunks: { //...optimization: { splitChunks: { chunks: 'all' // 这里要写,不然就是只分割异步代码 // 后面不...6.CDN加速 你要引入一个,但是这个的在线js比较慢,你可以放到CDN。...CDN或者自己的CDN,打包之后是这样的 如果不,那么publicPath默认是相对路径,相对于根目录 如果你最终是会变成下载下来的本地包加载,那么就不用写在线CDN的URL了,直接写上

69410

一篇带你从小白到入门的vue教程

vue简介 vue是什么 vue是一个渐进式的js框架 什么是渐进式框架 对项目参与的少(在项目中可以使用其他的框架或者) MVC和MVVM mvc 是一个后台的软件设计模式,将程序分为三部分...路由 一、怎么理解路由 就是跳转的机制 然后这个跳转的规则由程序员来指定 二、前端路由 后台路由 前端路由:是由程序员来设置的页面跳转规则,由不同的路径显示不同的组件 但是前端路由的路径在后台服务器上是不存在的...新增的api history堆栈来实现的 js原生事件 ononpopstate()来检测页面的路径变化 从而根据路径来显示不同的页面 四、路由的配置 vue中的路由默认的hash路由 src->router...默认的路径在导航上添加router-link-active 2.6、配置默认路径 { path;“/”, redirect:"路径" } 三、二级路由的配置 哪个一级路由下配置二级路由...actions 都是全局的直接使用就是 只有局部的是要加模块名 vant、elementUI、ECharts 这里不多介绍了,我们都知道vue呢他是一个渐进式的框架,轻量级,可以在项目中可以使用其他的框架或者

7.8K21

【微服务】146:商品品牌业务后台Java代码编写

做了该配置后,就不用引入axios了,直接调用vue的$http方法即可。 ②基础请求路径 直接引用config.js文件中的url即可,也就是网关对应的域名+路由,最先开始就说明过。...二、后台代码编写 个人的编写代码思路: 首先确定对应实体,其次确定请求参数、请求路径和返回值,最后Java三层代码编写。 1实体和数据表 ?...数据中对应的数据表tb_brand,编写实体Brand和其一一对应。 2返回值数据 编写一个分页数据实体,在其它业务中若是需要分页数据也可以使用这个。...这个items也就是我们通过数据查询到的Brand集合。 3Controller层 该层接受请求和响应处理后的数据,其最重要的也就是请求路径和请求参数。...我们可以发现,数据主要存储在data中: items即为响应的每行数据,因为设置的rows值5,所以这里items大小也就是5。 total即总记录数,数据中一共查到了164条品牌数据。

1.5K20

gulp 详解与使用

dist")); //最后生成的文件路径 dist/**/*.js //如果 **/*.js 匹配到的文件 jquery/jquery.js ,则生成的文件路径 dist/jquery/jquery.js...(gulp.dest("dist")); //有通配符出现的那部分路径* //假设匹配到的文件script/zepto.js //则最后生成的文件路径dist/zepto.js 通过指定 gulp.src...("build")); //配置了base参数,此时base路径script //假设匹配到的文件script/lib/jquery.js //此时生成的文件路径build/lib/jquery.js...因为 one 任务耗时 3 秒,所以 two 任务会在 one 任务中的异步操作完成之前就执行了。 那如果我们想等待异步任务中的异步操作完成后再执行后续的任务,该怎么做呢?...function(){ console.log("two is done"); }); 第三:返回一个 promise 对象,例如: var Q = require('q'); //一个著名的异步处理的

1.1K10

vue笔记(12) vuex

学习内容 ⊙ 路径引用的简便写法 ⊙ state ⊙ mutations ⊙ getters ⊙ mutations的类型常量 ⊙ module ⊙ vuex文件夹的目录组织 路径引用的简便写法...像我上次做的案例一样,每次路径前面都要...../一下,不仅麻烦,而且如果复制粘贴这一块代码到了别的文件夹中,路径全部要重新更改 这时可以来到build文件夹中,修改一下配置 使用: 但是要注意,如果是import的话可以直接这样...所以我们现在在actions中一个异步操作 先写几个信息: 现在我的目的是点击按钮以后将info中的名字进行修改 我们先来看看mutations里面怎么: 但是当然不能直接这样修改,否则就是同步操作了...看看效果吧: 插件里也能很好的捕捉到异步操作 如果我在异步操作以后还想进行别的操作,比如完成后就打印"信息更改完成",那要怎么做呢 index.js 那后面的then在哪里呢 在App.vue

1.6K10

Node.js核心API的使用

异步I/O处理 (4). 事件驱动编程 3. Node.js的两种运行模式 (1)....Node.js官方提供的原生模块 -path模块,提供了对文件路径进行相关操作的方法 (1). path.parse(str) 解析一个路径(字符串)对象 ?...(2). path.format(obj) 解析一个对象路径(字符串) ? (3). path.join(str1 ,str2,str3…)使用当前系统路径分隔符连接路径(字符串) ?...Node.js官方提供的原生模块-http模块,该模块可用于编写基于HTTP协议的客户端程序(即浏览器);也可以编写基于HTTP协议的服务器端程序(即Web服务器) htttp常用的: (1). http.ClientRequest...使用Node.js访问MySQL数据 为了精简Node.js解释器,官方没有提供访问任何数据相关模块,使用npm工具下载mysql模块:npm i mysql ,连接方法有以下三种: (1).

3.6K10

Node 中核心API的使用

注意:交互模式自带输出功能,不必console.log,在交互模式下,声明的全局变量是global的成员,全局污染严重。 node 回车 2....node  完整路径名/x.js 回车 提示:只要安装完Node.js,重启一下WebStorm,WS可以自动发现node.exe解释器程序,记得新建的项目一定要修改默认的文件编码方式UTF-8。...1. path.parse( str ) ,解析一个路径对象; 2. path.format( obj ) ,解析一个对象路径; 3. path.join(str1 ,str2,str3…)使用当前系统路径分隔符连接路径...该模块可用于编写基于HTTP协议的客户端程序(即浏览器);也可以编写基于HTTP协议的服务器端程序(即Web服务器) htttp常用的: 1. http.ClientRequest  常用的两个函数 ...使用Node.js访问MySQL数据 为了精简Node.js解释器,官方没有提供访问任何数据相关模块,使用npm工具下载mysql模块:npm  i   mysql ,连接方法有以下三种: 1.

1.9K20

深入webpack4配置笔记(必备可选配置 单页多页配置)

使用@babel/polyfill有个问题,它的兼容代码会污染全局变量,在普通业务代码项目中没问题,但如果babel用于组件,就需要换个方法来避免污染全局环境:可以使用@babel/plugin-transform-runtime...,这样打包出来的页面首次加载js只会加载同步代码,异步模块代码会等到满足异步触发条件时再另外加载对应的异步js文件,这样能明显提高页面首次加载的速度和所加载js代码的使用率。...这样当项目js中用到关键字$时程序就能理解jQuery对象。...用webpack打包代码,方法与打包业务代码差不多,只是在output配置中添加libraryTarget: "umd"和library: library,前者作用是打包后的添加支持ES Module...// 获取pagePath路径下的所有文件,此处值 [ 'about.html', 'index.html', 'list.html', 'main.html' ] paths.forEach

1K20

大厂的面试题

你能开发自己的组件吗(树组件,日期组件,表格组件)?...JavaScript异步的处理方式 怎么配webpack vue-router的原理 项目中怎么用的webpack,怎么优化 讲express的设计原理 手动实现parseInt 手写vue的mixin...http和https区别 https建立的过程 setState什么时候是同步,什么时候是异步的 从数组中找出三数之和n vue和react的区别 react fiber架构的理解 node主要用来解决什么问题...第五部分 CSS 水平垂直居中 闭包,JS 没有闭包的话会怎么样 typeof 和 instanceof js 的原型链,继承 js 的 bind、apply、call 有什么区别 var、let、const...,怎么一个插件 树的深度优先遍历、广度优先遍历实现和区别 快速排序原理 Express 和 Koa 区别 react 路由原理 react hooks redux 异步中间件实现原理 Vue MVVM

1.7K20

webpack性能优化(1):分隔分包异步加载+组件与路由懒加载

其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个模块的时候,webpack会构造script dom元素,由浏览器发起异步请求这个js文件。...实现过程中存在的问题:怎么保证相同的文件只加载一次?怎么判断文件加载完成?文件加载完成后,怎么通知所有引入文件的地方?...[hash:5]',    publicPath: '/assets/'},chunkFilename路径将会作为组件懒加载的路径webpack支持的异步加载方法System.import(); 已废除...URL)需要webpack > 2.4,v1不支持——webpack2官网推荐使,官方文档webpack中使用import(), 属于es7范畴,require是由webpack社区提供方案,importes.../jsLib/module');    //do something})require方式可以将多个模块js组合分割打包,require下面方法ensure第一个参数是依赖,如果不需要请[](空数组)

1.1K10
领券