NODEJS 初学 | 8月更文挑战

206 阅读3分钟

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协议,当代码汇总存在httphttps的链接时候,页面就无法正常显示了,而且现在前端开发基本上都是单页应用,开启一个本地服务是很有必要的。

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