node基础

127 阅读2分钟

基础

事件驱动、

事件驱动:发布者、订阅者

单线程

node.js的单线程只是说的主线程是单线程。但是异步其实是有线程池的。

应用场景

适合处IO密集型理高并发的场景

不适合处理数据较多的业务场景

node.js实现api服务

node 项目初始化

typescript 的安装

tsc -init初始话 生成配置文件

ts-node 的安装 可以用node执行ts文件 ts-node xxx.ts

安装如下三个插件:

    "cross-env": "^7.0.3",
    "ts-node": "^10.7.0",
    "typescript": "^4.6.4"
      
      

cross-env 是处理兼容性的,兼容的是ts-node 和 typescript

一般插件是 ts-node 和 typescript 统一是本地 或者统一是 线上模式。

安装express

需要安装两个 一个是 express 一个是 @types/express -D

ts文件是不支持.json文件的,但是可以通过修改配置文件完成:

 "resolveJsonModule": true,

在ts中使用require的问题

如果在ts中使用require的可能会报错

所以尽量使用import的方式

全局对象

__filename 文件的位置

__dirname 目录的位置

process 与当前的进程相关

timer 执行顺序和事件循环

module,exports 处理模块的导出

require 实现模块的加载

全局对象是global,在node里边是没有this的。

在node的js文件中的this是空的。而放在(function(){})();中的this和 global是相等的。这个其实是node给我们做了一个处理。

console.log(this);//{}
(function(){ //放入自执行函数里就相等了
    console.log(this===global);//true
})();

process

全局变量

process是和进程有关系的全局变量

内存:memoryUsage

console.log(process.memoryUsage());
{
  rss: 19234816,  
  heapTotal: 4509696,  //内存的总大小
  heapUsed: 2376920, //使用内存的大小
  external: 803681, //可以扩展内存的大小
  arrayBuffers: 9386 //独立的buffer内存大小,我们之后创立的buffer大小是在这个大小的基础上增加的。
}

查看cup的使用:

console.log(process.cpuUsage);//查看cup的使用情况

查看目录、node环境、cup架构、用户环境、系统平台

//当前环境的运行目录,以下两个方法返回的绝对路径是相等的
console.log(process.cwd()); //当前工作目录 current work diraction
console.log(__dirname);
console.log(process.version);//当前node版本
console.log(process.versions)//当前node版本以及环境的版本,包括引擎版本等
console.log(process.arch);//当前cup的架构,例如电脑是64为还是32位的
console.log(process.env.NODE_ENV);//用户环境,一般是生产环境或者是开发环境,可以通过常量NODE_ENV查看
console.log(process.env.PATH) //系统环境变量的获取
console.log(process.platform);//当前系统平台是window还是mac

启动参数 pid 运行时间

console.log(process.argv);//获取传入的参数
console.log(process.argv0);//获取第一个参数
console.log(process.pid);//当前的应用运行的id
console.log(process.uptime());//当前文件运行的时间,单位秒