Node.js 复习总结

前言

最近急切地想来弥补一些自己学习过程中的漏洞,node.js作为前端工程化中参与感最强,然而似乎存在感最弱的一部分,往往被很多前端开发者所忽略,这篇文章主要是简单的复习一下node.js的知识,作为一个初学者,这些东西是你必须要了解的。

什么是node.js

首先看官网的介绍,node.js其实是JS的一种运行时,它的特点很明显,官网上也主要提到了两点,一个是事件驱动,一个是非阻塞IO。

关于具体概念这里不会讲解,大家对名词有不理解的还是自己去查吧

关于CommonJS

关于CommonJS,这是一个用于node.js的模块管理规范,CommonJS定义的模块分为: 模块标识(module)、模块定义(exports) 、模块引用(require),我们可以随便写一段代码:

console.log(1)

放在Chrome中调试,可以看到:

( function(exports, require, module, __filename, __dirname) {
    console.log(1)
  }
)

首先,我们可以看到,每个node.js文件都是一个模块,可以看到它是用()包裹起来的,也就是说,每个文件都是有自己的作用域的。

其次,module代表了模块本身,他里面有一个exports属性代表模块的对外接口。

接着require引入的永远只是module.exports里面的内容,而exports 只是 module.exports的引用,在一开始:

exports=module.exports={}

与window类似,global用于node.js的挂载全局对象,比如CommonJS,console等。

global.process

process是挂载在global中十分重要的一部分:

const {argv} = process

这时我们运行脚本,foreach循环argv,可以看到第一个值是node目录,第二个值是当前文件目录。后面我们可在命令行传入参数,如:

node demo.js a=1 b=2

这时我们发现argv数组中又多了两项 ,分别是a=1, b=2

env也是 process中的一个重要属性,打印一下:

ALLUSERSPROFILE: 'C:\\ProgramData',
  ANDROID_HOME: 'C:\\Users\\starinsun\\AppData\\Local\\Android\\Sdk',
  APPDATA: 'C:\\Users\\starinsun\\AppData\\Roaming',
  ChocolateyInstall: 'C:\\ProgramData\\chocolatey',
  ChocolateyLastPathUpdate: '132186373963992047',
  CLASSPATH: '.;C:\\Program Files\\Java\\jdk1.8.0_202\\lib\\dt.jar;C:\\Program Files\\Java\\jdk1.8.0_202\\lib\\tools.jar;',
  CommonProgramFiles: 'C:\\Program Files\\Common Files',
  'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
  CommonProgramW6432: 'C:\\Program Files\\Common Files',
  COMPUTERNAME: 'ASEN',
  ComSpec: 'C:\\WINDOWS\\system32\\cmd.exe',

这里面是干嘛的我自然不用多说。

cwd()是一个process方法,也就是pwd

Http

http是node.js内置的http模块,简单的写个服务器:

const http = require('http')
const server = http.createServer((req, res) => {
	res.statusCode=202;
	res.setHeader('Content-Type', 'text/html');
	res.end('hello, world')
})

server.listen(3000, 'localhost')
发布了346 篇原创文章 · 获赞 330 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43870742/article/details/103537768