node

线段树

自古美人都是妖i 提交于 2020-02-20 06:45:57
# include <bits/stdc++.h> # define inf 0x3f3f3f3f const int maxn = 1e5 + 10 ; using namespace std ; int Sum [ maxn << 2 ] ; //A[maxn<<2];//Sum求和,A为原数组(根据题目更改) int num [ maxn << 2 ] ; int len ; void PushUp ( int node ) //向上更新节点信息 { Sum [ node ] = Sum [ node << 1 ] + Sum [ node << 1 | 1 ] ; } void pushdown ( int node , int wide ) { if ( num [ node ] ) { int t = num [ node ] ; num [ node << 1 ] = t ; num [ node << 1 | 1 ] = t ; Sum [ node << 1 ] = ( wide - ( wide >> 1 ) ) * t ; Sum [ node << 1 | 1 ] = ( wide >> 1 ) * t ; num [ node ] = 0 ; } } void Build ( int l , int r , int node ) { //[l,r

nodejs 和 js

▼魔方 西西 提交于 2020-02-19 23:25:49
JavaScript组成:ECMAScript(定义这门语言的基础,比如语法、数据类型、结构以及一些内置对象等)、DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法)、BOM(基于ECMASCRIPT,扩展出来的用于操作浏览器的一些方法)。 NodeJS是以ECMASCRIPT为基础,然后在这个基础上扩展出来的一些操作其他东西(即操作非浏览器)的一些方法,比如操作OS操作系统、file文件系统、net网络、database数据库等。也就是说nodejs和JS在底层都是一样的,都是ecmascript,但是扩展出来的功能却是不一样的。一个是偏向于前端浏览器,一个是偏向于后端。 在ecmascript部分node和JS其实是一样的,比如与数据类型的定义、语法结构,内置对象。但在js中的顶层对象是window对象,但是在node中没有什么window对象,node中的顶层对象是global对象。这就是二者的差异性。 在window对象中,定义一个全局变量是可以通过Window来访问的,但是在node中是不能通过global对象来访问的,如: var a=100; console.log(global.a);这种方式是输出结果为undefined 对于上面这个例子,因为在node中定义的变量是模块中的对象,而并不是global全局变量,所以结果为undefined

Win10 安装 nodejs

余生长醉 提交于 2020-02-19 12:04:38
nodejs版本: 10.16 nodejs下载链接 : https://nodejs.org/zh-cn/download/ 进入nodejs下载页面如下所示:nodejs最新版本为12.16,但是我的项目需要的是10.16,因此我将下载10.16。 页面底部出现如下选项,选择“ 以往的版本 ”,找到node-v10.16.0并下载。 1. 下载node-v10.16.0并解压至c:\WindowsApp\nodejs 2. 新建系统变量 变量名:%NODE_HOME% 变量值:(安装目录)c:\WindowsApp\nodejs 3. 编辑path,新增两个条目 %NODE_HOME% %NODE_HOME%node-global 4. c:\WindowsApp\nodejs 目录下新建2个文件夹 node-global: (npm install -g XXX 安装全局模块的目录) node-cache 5. 设置全局/缓存目录 npm config set prefix "c:\WindowsApp\nodejs\node-global" npm config set cache "c:\WindowsApp\nodejs\node-cache" 6. 设置npm源(可选) npm config set registry "https://registry.npm

vue 引入 scss 编译报错:Module build failed: TypeError: this.getResolve is not a function

眉间皱痕 提交于 2020-02-19 06:43:00
vue 引入 scss 编译报错: ./node_modules/css-loader?{“sourceMap”:true}!./node_modules/vue-loader/lib/style-compiler?{“vue”:true,“id”:“data-v-1168d9a7”,“scoped”:true,“hasInlineConfig”:false}!./node_modules/sass-loader/dist/cjs.js?{“sourceMap”:true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/components/app_main.vue Module build failed: TypeError: this.getResolve is not a function at Object.loader (D:\WORK\VueProject\XiaoWei\node_modules\sass-loader\dist\index.js:52:26) @ ./node_modules/vue-style-loader!./node_modules/css-loader?{“sourceMap”:true}!./node_modules/vue-loader/lib

nodeJS中的包

早过忘川 提交于 2020-02-18 21:30:27
前面的话   Node组织了自身的核心模块,也使得第三方文件模块可以有序地编写和使用。但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用。而在模块之外,包和NPM则是将模块联系起来的一种机制。在介绍NPM之前,不得不提起 CommonJS 的包规范。JavaScript不似Java或者其他语言那样,具有模块和包结构。Node对模块规范的实现,一定程度上解决了变量依赖、依赖关系等代码组织性问题。包的出现,则是在模块的基础上进一步组织JavaScript代码。CommonJS的包规范的定义其实也十分简单,它由包结构和包描述文件两个部分组成,前者用于组织包中的各种文件,后者则用于描述包的相关信息,以供外部读取分析。本文将详细介绍nodeJS中的包 包结构   包实际上是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件,安装后解压还原为目录。完全符合CommonJS规范的包目录应该包含如下这些文件   1、package.json:包描述文件   2、bin:用于存放可执行二进制文件的目录   3、lib:用于存放JavaScript代码的目录   4、doc:用于存放文档的目录   5、test:用于存放单元测试用例的代码   以功能为使页面即时刷新的livereload插件的包结构为例 包描述文件   包描述文件用于表达非代码相关的信息

NodeJS开发指南:读书笔记随谈之一

為{幸葍}努か 提交于 2020-02-18 21:28:52
这本书是市面上讲nodejs的一本不可多得的入门书,当初想学 nodejs的时候,找了半天,终于找到了这本好书,随后一发不可收拾,花了一两天的功夫就看玩了,感觉作者系统功力深厚,以下只是偶的一些摘要,权当心得体会。 书里说nodejs的核心特性是异步IO,事件驱动,任何IO操作都是由事件来驱动的。 说到异步IO又不得不来看看操作系统的 线程与阻塞 。 什么是阻塞呢, 线程在执行中遇到磁盘读写或者数据库通讯,网络通讯这种耗时比较多的时候,操作系统将会剥夺此线程的CPU资源,并暂停此线程,转而去执行别的线程,此线程调度方式称为阻塞 。当 I/O操作完成之后,操作系统又恢复此线程,让其继续执行,这种I/O模式通常称为同步I/O或者阻塞式I/O。 异步式IO或者非阻塞式I/O则针对所有操作采取不阻塞的方式,当线程遇到IO操作的时候,不会以阻塞的方式等待IO操作完成或者数据的返回,而是将IO操作发送给操作系统,然后接着执行下一个操作,当操作系统执行完IO操作之后,将是事件的方式通知执行IO的线程,线程会在特定的时候执行这个事件。这一切的前提条件就是,系统需要一个事件循环,以不断的去查询有没有未处理的事件,然后给预处理。 阻塞方式下,一个线程只能处理一个任务,要想提高系统的吞吐量,必须使用多线程 ;而非阻塞情况下,一个线程永远在执行计算,CPU使用率几乎100%,IO以事件的方式通知

Node.js学习笔记(4)——除了HTTP(服务器和客户端)部分

谁说胖子不能爱 提交于 2020-02-18 19:44:04
很多node入门的书里面都会在介绍node特性的时候说:单线程,异步式I/O,事件驱动。 Node不是一门语言,它是运行在服务器端的开发平台,官方指定语言为javascript。 阻塞和线程: 线程在执行中如果遇到磁盘读写或网络通信(统称为 I/O 操作),通常要耗费较长的时间,这时操作系统会剥夺这个线程的 CPU 控制权,使其暂停执行,全力执行这个I/O操作,同时将资源让给其他的工作线程,这种线程调度方式称为阻塞。当其他完成之后,系统再恢复它对cpu的控制权,继续执行,这就是同步I/O或者阻塞式I/O。 所以这个模式之下,一个线程只能处理一个任务,要么是计算操作,要么是I/O操作等等。每当有多的请求发过来的时候,必须多加线程用来响应。 同样的,在异步式或者非阻塞式,系统对所有的I/O操作部阻塞,而是将这个耗费时间和资源的操作报告给OS,就继续执行下一条语句。当OS执行完毕这个I/O操作之后,以事件的形式通知原来请求挂载I/O操作的线程,线程会在特定的时间处理这个事情。所以,必线程必须有事件循环,不断检查有没有未处理的事件。 所以这个模式下,cpu的核心利用率永远是100%,I/O以事件形式通知。 总结:多线程同步式I/O阻塞模式通过加开线程响应更多的请求,好处是在多核cpu的情况下利用更多的核。 单线程模式异步式I/O非阻塞式一个线程永远在执行计算操作

廖雪峰Java14Java操作XML和JSON-1XML-2DOM

耗尽温柔 提交于 2020-02-18 13:33:05
XML是一种数据表示形式。 可以描述非常复杂的数据数据结构 用于传输和传输数据 DOM:Document Object Model DOM模型就是把XML文档作为一个树形结构,从根结点开始,每个节点都可以包含任意个字节点。 用Java解析XML时, Document代表整个XML文档 Element表示元素 Attribute:属性 Comment表示注释 Java DOM核心API: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(XML_URL); Element root = doc.getDocumentElement(); //获取根结点的元素 //从根结点document出发,可以便利所有的子节点,获取所有元素、属性、文本、数据、注释。每个Node都有自己的type,根据type来区分一个Node到底是元素,还是属性,还是文本。 遍历XML文件 import org.w3c.dom.Document; import org.w3c.dom.Node; import javax.xml.parsers.DocumentBuilder; import

NodeJS回调地狱

风流意气都作罢 提交于 2020-02-18 11:50:32
NodeJS回调地狱 一.为什么要写这篇文章    前段时间和朋友做一个小程序,在很多地方如果用户没有登录,因为小程序的升级,不能直接通过现有的API来获取用户的信息,必须得通过点击按钮的方式,首先获取用户的信息后,进入回调方法,通过switchTab到达登录页面,登录成功后在回到之前的页面。整个逻辑非常的简单,代码实现起来也简单,但是在嵌套上真心恶心到我了。这让我不禁的想到了NodeJS,至于为什么想到NodeJS,你品,你用心品。这个问题,在行业内,大家都把他叫做“回调地狱”。为什么会产生回调地狱呢?因为NodeJS推崇异步编程,那么恰恰是异步编程就容易导致“回调地狱”。 二.案例演示 现假设这样一个场景,一个程序员去面试,需要经过三轮面试,第二、三轮面试必须要拿到上轮面试通过后的结果才能进行下场面试,而每场面试需要等待一段时间后才给回复,下面通过代码来模拟一下这个场景: // 面试 function interview(callback) { setTimeout(() => { //模拟出当前面试, 有60%通过的概率 if(Math.random() <= 0.6) { callback(null, 'success') }else { callback(new Error('error')) } }, 100) } // 第一轮面试 interview((e) => {

[Node]踩坑:在Cmd中可运行node-v,在VScode中提示‘node’不是内部或外部命令

我的未来我决定 提交于 2020-02-18 04:59:08
1. 问题 安装完node之后,在Cmd中可运行node-v,在VScode中提示‘node’不是内部或外部命令 2. 解决 重启VScode即可,原因是在打开VScode时下载安装的node,所以VScode没有自动识别到Node的Path,除非你更改了Node安装目录 3.其他 其他问题, 例如 ‘npm’不是内部或外部命令,'Vue’不是内部或外部命令(在Cmd也报错的),请自行去系统设置那里查看Path是否加上正确的路径 踩过的坑多了,自然之后的路会更顺~加油!! 来源: CSDN 作者: iChangebaobao 链接: https://blog.csdn.net/iChangebaobao/article/details/104354853