NodeJS---GlobalObjects

来源:互联网 发布:什么编程语言好学 编辑:程序博客网 时间:2024/06/01 22:27

http://nodejs.org/api/all.html#all_https


关于这篇文档

       这篇文档的目的是从参考和概念的角度来描述理解nodejs的api,每个章节描述了一个内置的模块或者更高等的概念

       在适当的情况下,属性,方法,参数和提供给时间处理程序的参数在主标题下被详细列出,每一个html文档拥有一个对应的json文档在一个结构体的形式中描绘相同的信息,这种特点是实验性的并且和该文档一起添加到了开发平台和公共设备上

 

       每一个html和json文件一般是基于node树下的doc/api/.markdown文件。这篇文档一般用tools/doc/generate.js程序. Html模板存储在doc/template.html

索引

     通过本文档,你将会发现每个章节的指示。Nodejs的api一直在稍微的更改。并且它的成熟确定的板块比其他的更加可靠。其中一些是被证明的,费城可靠

他们看上去并不像经常被更改的。另一些标记着新和实验性的,是有危险的,在进程中需要重定义

 

稳定性指标如下

       Stability: 0 – 弃用

              这些功能被认为是有问题的,并且被有计划的更改,不要用他们,用这些功能会引起一些警告,逆向的兼容性是不被希望的

       Stability:1 实验性的

              这些功能最近被介绍,并且可能在未来的版本改动或者移除,请尝试他们并反馈,如果他们的用例对你很重要,请告诉node的核心团队

       Stability:2 不稳定的

这些api正在不断的积累的过程中,但是并没有足够的事实证实他们足够大的稳定,如果他们是合理的那么向后将会兼容他们

       Stability: 3 稳定的

这些api已经被证实是满意的,但是清理一些潜在的小代码可能会造成一些小幅度的修改,向后兼容是可以保证的

       Stability:4 确定的api

这些api在产品中已经被详尽的测试,并且不出现大的问题不会被更改

       Stability:5 不可变动的api

除非极少的bug被发现,这些代码几乎不会改变。请不要在这些代码中更改,他们不会被修改

 

Json 输出

       Stability:1 实验性的

每一个html文件在markdown都有一个拥有一致数据的json文件

这些功能在nodev0.6.12更新的,他们是实验性的

大纲

 

用node编写的webserver示例将会输出”Hello World”

 

//申请一个http的变量
var http = require('http');
//创建服务器
http.createServer(function (request, response) {//回调函数
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');//
}).listen(8124);//端口号为8124
//在控制台输出
console.log('Server running at http://127.0.0.1:8124/');

运行这个服务,将这段代码写入example.js,并且用node程序执行

> node example.js
Server running at http://127.0.0.1:8124/

//所有的在这个文档中的示例都是这样简单的运行

 

总体的对象

这些对象在所有的模块中都是可以用的,他们中的一些并不是在全局的范围内而是在一些模块中,他们将会被标记出来

 

global

.{Object}全局的对象命名空间

在浏览器中,最最顶层的范围是全局范围,这意味着在浏览器中,如果你在全局范围内 var something将会定义一个全局的变量。在node中这是不一样的,最顶层范围并不是全局范围,在一个node模块中varsomething将会本地化该模块

 

Process

.{Object}

该类,请查看process 对象章节

 

console

.{Object}

经常用来打印到标准输出或者错误输出,请查看console章节

 

Class:Buffer

.{Function}

经常是二进制数据的句柄,查看buffer章节

 

require()

.{Function}

请求模块,查看modules章节,require并不是一个全局的却是每个模块都本地化的

 

require.resolve()

用本地的require机械的寻找并本地化一个模块,并不是加载这个模块,仅仅返回这个解析的文件名

 

return.cache

.{Object}

模块在被请求的时候将会存储在这个对象中,通过从这个对象中删除一个键值,下一个请求将会重新加载这个模块

 

require.extensions

Stability:0  弃用的

.{Object}

指示require怎样解决特定的文件扩展

进程文件把.sjs当做,js

require.extensions['.sjs'] = require.extensions['.js'];

在以前被弃用,这个列表用来不是javascript模块通过编译命令加载进入node,然而,在实践中,有很多更好的方法做到这一点,比如加载一些其他的node程序模块,或者编译他们成javascript、

自从这个模块被锁上之后,这个功能不会被删除,然而他可能会导致很多不易发现的bug而且复杂的东西最好不要用

 

_filename

.{String}

该文件名的代码已经被执行过,这是解决这个代码文件的确定路径,对于一个主程序来说,这不是必须的,这个文件名一般用在命令行中,在模块中的变量是那个模块文件的路径

console.log(__filename);
// /Users/mjr/example.js

_filename并不是一个全聚德但是是每一个模块都本地化的

 

_dirname

.{String}

这个名字是正确的被编译的目录名

console.log(__dirname);
// /Users/mjr

_dirname不是一个全局的而是每个模块本地化得

 

module

.{Object}

引用当前的模块,特别的,module.exports和exprts对象是一样的。Module不是全局的,而是每个模块实例化得

查看module系统文档获取更多的信息

 

exports

 

一个在所有正确的模块实例之间共享并且可以获取require的module.exports的引用,查看module系统文档获取更加详细的信息

 

setTimeout(cb, ms)

运行回调函数cb 在ms毫秒之后,确切的延迟由外部的环境确定比如系统延迟保证和系统加载

延迟时间必须在1-2147 483647之间,如果这个值不在这个范围内,他将会自动默认1,

一般的说,一个时间不会超过24.8天

返回一个不确定的值代表这个时间

 

ClearTimeout(t)

停止由setTimeout()创建的时间值,回调函数将不会被调用

 

setInterval(cb, ms)

重复运行回调函数每ms毫秒,这个间隔时间可能会不同,由外部环境比如操作系统定时器或者系统加载等决定,他不能比ms小但是可能会很长,这个间隔值必须在1-2147483647之间,如果这个值不在这个范围,将默认为1,一般说这个值不会比24.8天更大,

返回一个不确定的值代表这个时间

ClearInterval(t)

停止由setInterval()创建的定时器,回调函数将不会被调用,这个定时器函数是全局变量,请查看timer章节

原创粉丝点击