nodejs
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 [1]
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Node.js 主要由 V8、Libuv 和第三方库组成:
- Libuv:跨平台的异步 IO 库,但它提供的功能不仅仅是 IO,还包括进程、线程、信号、定时器、进程间通信,线程池等。
- 第三方库:异步 DNS 解析( cares )、HTTP 解析器(旧版使用 http_parser,新版使用 llhttp)、HTTP2 解析器( nghttp2 )、 解压压缩库( zlib )、加密解密库( openssl )等等。
- V8:实现 JS 解析、执行和支持自定义拓展,得益于 V8 支持自定义拓展,才有了 Node.js。
和Tomcat的区别
Nodejs是一个基于Chrome V8引擎的JavaScript运行环境,一个让JavaScript运行在服务端的开发平台。而Tomcat是一个应用服务器,一个免费的开放源代码的Web应用服务器,是广泛的jsp服务器。
当需要在console.log中打印中文:chcp 65001
node的模块查找策略
- 当模块路径是绝对路径或相对路径时
- 文件查找:当路径以绝对路径或相对路径书写时,去找这个文件,并会自动添加后缀查找
js json
- 文件夹查找:当文件查找找不到对应文件时,且有对应文件夹时,会进入文件夹,看package.json的main字段,若果没有则会使用index.js文件
- 当模块是一个一般字符串
- 内置模块:会查找看是不是内置模块
- 第三方模块:不是一个内置模块,会去node_modules下查找,依次使用文件查找和文件夹查找
- 找不到则报错