前言
nodejs是什么?
在我看来,它就是javascript。不同的是它的宿主环境变了,从浏览器变成了服务器,以至于增加很多后端的功能。比如操作文件,处理网络相关服务。
官方的说明是:
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
其他看法?
nodejs可以做写什么
- 编写服务器端的脚本
- 作为web服务器
那些个全局变量
global
需要说明的是在全局的作用域下,使用var xxx = 1;也不是全局变量。 更确切来说就是nodejs里没有一个真正意义上的最顶级变量。
process
进程的对象,存放着当前的运行环境参数。 其中需要说明的是三个。
- process.cwd() 指代的是当前node运行的绝对路径
- process.exit(code) code是一个number,一切非0值都不属于正常退出。也就意味着只有当为0时,才是正常退出。
它的好处就在于可以在任意一个地方中止程序的执行。 - process.nextTick(callback) 相当于setTimeout(callback, 0);却也是用来替代它的方法。官方的说明是更高效。
其他的用得不是很多,简单看看即可。
console
就是往命令行下输出一些个信息。
buffer
处理二进制文件的一些个方法,正常情况下是用不到的。
require
本质就是加载其他你需要的文件。很多时候你可以认为它就是一次include或者parse
require加载规则之相对或绝对路径
虽然看起来非常灵活以及方便,但是使用的时候尽量去使用完整路径方式,尽量少的去使用这种写法,因为不利用维护和查阅。
require加载规则之文件名
require加载规则之NODE_PATH
有了NODE_PATH后,找不到模块就寻找此目录下是否存在对应的模块
__filename
这个指代的是你使用node运行的当前运行的js文件的绝对路径。
__dirname
跟__filename保持一致,只是它为路径,或者说是文件夹
module
你可以认为它是一个function,然后return exports;
说白了就是当前执行的js文档内容。nodejs里每个js都被看着是一个module。
module.exports
相当于一个对象,用于最后返回给require它的module。
exports === module.exports
setTimeout & clearTimeout
一次性的定时操作
setInterval & clearInterval
重复性的定时操作