Node.js游戏服务器开发之全局模块process
初始node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境, Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
在以前的时候由于javascript解释器太慢只能在做前端开发,后来以谷歌为主的一些公司开发的v8引擎处理性能越来越快,快到让javascript达到了做后端开发的要求,后来就形成了一个组织开发出了一个将v8引擎包含在javascript中的工具,这就是后来的node.js。后来node.js的一个核心用户 Isaac Z. Schlueter开发出npm这个第三方工具,形成了一个基于nodejs和npm的生态环境,全球上所有优秀开发者做的库都被集成到npm(node package manager)之中,通过npm我们就能下载到所需要第三方库,大家也可以去简单的了解一下nodejs的历史发展: http://www.infoq.com/cn/articles/node-js-and-io-js
Node.js的官方文档: http://nodejs.cn/api/
Node.js运行环境你可以理解为一个不断进行事件循环的监听进程,你可以往这个循环里插入事件,当有事件发生的时候就会启动(**)nodejs来运行这个事件并产生一个回调函数,当没有事件可以发生的时候就会退出nodejs。
Process:
Process是nodejs的一个全局模块,通过这个模块可以获得node.js进程的一些信息:
比如说进程的pid:
这里运行后机会打印出来进程的pid为16096,包括其他的一些常用的属性:
除了这些还有很多其他的属性我们可以之间通过node.js的官方文档找到processjinc来查询这些相关的属性,接下来要介绍的就是几个我们比较常用事件和方法:
exit //退出事件
当node.js结束事件循环中的所有事件退出后就会发送一个emit事件,我们通过on监听就能补捕获到这个事件:
运行后:
uncaughtException //异常捕获事件
在一般情况下服务器在运行的时候发生错误就会终止服务器的运行,但这里我们通过监听uncaughtException就可以捕获nodejs抛出的异常,然后nodejs可以继续运行,在这里我放一个未定义的函数来产生错误,然后通过监听uncaughtException来捕获它,并且它捕获之后会返回一个参数,我们可以直接打印出它:
运行后:
捕获后它就会调用这个回调函数,并打印出这个错误,这个事件在我们一般的服务器开发中非常有用,通过监听捕获这个异常,可以有效防止服务器的宕机,并且我们可以保持这个错误方便以后维护和修改的时候读取这个错误。
Process. nextTick() //下一次事件循环时调用
上面我们讲了node.js一个不断进行事件循环的进程,你可以把它理解成一个while循环,而Process. nextTick()是指当这个事件结束后进入下一个事件之前就会调用方法里的回调函数,比如说我在这里添加一个定时器事件:
运行后:
在第一次的事件结束后下一个定时器事件开始之前就会调用这个函数,最后包括一些比较重要的方法:
progress.cwd; // 获取当前的工作目录
progress.uptime // 获取当前进程运行的时间
progress.chdir // 修改当前的工作目录;
这些等等,还有其他方法和事件我们都可以通过文档查询到,所以我们不论是学习客户端也好服务器也好最重要的就是要多看文档,一些不记得函数忘了就翻文档,感谢大家阅览!