1,NODE.js 概述
1,简介
- 一个线程大约需要耗费2MB内存, 一个8G的内存服务器最大连接数4000个左右
- Java,PHP, ASP.NET为每一个客服端连接创建一个新的线程
- Node.js修改了客户端到服务器的连接方法,为每一个客服端触发一个node.js内部进行处理的事件 2,V8介绍
- NODE.js服务器中运行的是高性能V8 JavaScript脚本语言
- V8 JavaScript 是一种被V8 JavaScript引擎所解析并执行的脚本语言
- V8 Javascript引擎是由Google公司开发的一种高性能javaScript引擎,Node.js将其转用在了服务器中,并且为其提供了很多不同用途的API 3,性能
- 为了提高性能。node.js采用了两种机制
- 1, 非阻塞型I/O
- 2, 事件环 4,安装
- wget nodejs.org/dist/v10.12…
- tar zxvf node-v10.12.0.tar.gz
- cd node-v10.12.0
- ./configure
- make
- make install 5, 模块
- 在node.js框架中,除了可以使用V8 Javascript 引擎中所支持的, ECMA Script 5中定义的函数与类之外,还追加类一些类和对象,函数,可以在不应用任何模块的情况喜爱直接使用
- 1,Buffer, setTimeout, clearTimeout, setInterval, clearInterval, require, module, process
2, REPL NODE的运行环境
- 输入node进入 repl 运行环境中
- .clear 清除内柔
- .exit 退出repl运行环境
- .break 跳转到开头位置
- .help
- .save 把你在repl输入的内容保存到一个文件中
3, NODEJS中控制台的输出
- node app.js 输出到控制台
- node app.js 1 > info.log (1代表重定向标准输出流)
- console.log === console.info
- console.error
- console.dir 查看对象内容并将其输出到控制台中
- console.time() console.timeEnd()
- console.trace()
- console.assert()
- setTimeout setInterval 函数均返回一个定时器对象, 这个对象还有unref, ref这些方法
- clearTimeout , clearInterval 函数清除一个定时器对象
- timer.unref() 取消定时器
- timer.ref() 恢复定时器
- require.resolve() 查询完整的模块名
- module === requeire.main 判断是否是主模块
- require.cache 缓存了所有已被加载模块的缓存区
4, NODEJS 定义的两个全局变量
- __filename 用于获取当前模块文件名
- __dirname 用于获取当前目录名
5, 事件 EventEmitter
- addListener(event, listener) event: 事件名 listener:事件处理函数
- on(event, listener) addListener的别名
- once 执行一次的事件函数
- removeListener(event, listener)
- removeAllListeners() 解除所有的事件
- sexMaxListeners(n) 最大的处理函数的个数
- listeners(event) 获取指定的事件处理函数
- emit(event) 手工触发指定函数
6, rollup 打包编译
- rollup main.js -f es //
- 通过rollup -c指令进行打包,rollup.js会自动寻找名称为rollup.config.js的配置文件
需要全局安装的node依赖
- npm i @babel/core @babel/node @babel/cli -g
安装rollup.js
npm install -g rollup.js
rollup -v
如果你想使用Rollup的配置文件,rollup.config.js 记得在命令行里加上--config或者-c
参数选项 rollup提供了五种选项:
amd – 异步模块定义,用于像RequireJS这样的模块加载器
cjs – CommonJS,适用于 Node 和 Browserify/Webpack
es – 将软件包保存为ES模块文件
iife – 一个自动执行的功能,适合作为<script>标签。(如果要为应用程序创建一个捆绑包,您可能想要使用它,
因为它会使文件大小变小。)
umd – 通用模块定义,以amd,cjs 和 iife 为一体
7,本地搭建http-server
1, 目的
本地打开一个HTML页面,一般都是file协议,当代码汇总存在http或https的链接时候,页面就无法正常显示了,而且现在前端开发基本上都是单页应用,开启一个本地服务是很有必要的。
2,项目中安装配置
npm install http-server --save
"scripts": {
"http": "http-server -c-1 -p 9524",
},
开发中因为要多次使用,在package.json中添加配置, 新增一条命令
3, 参数说明
-c-1 #表示禁用缓存
-p 9527 # 表示指点端口号
-o /other/index.html # 自动打开浏览器
4, 代理
http-server --proxy http://zlm.store.com.cn
5, 启动项目
npm run http
注意: 默认路径: ./public