什么原生javascript方法能够创建服务器?

时间:2016-02-24 16:27:47

标签: javascript node.js

我是nodejs的新手。我已成功将其安装在我的计算机上(并重新启动)。我在My Documents目录中创建了一个hello_world.js(我在windows xp计算机上):

console.log("hello world");
var my_http   = require( 'http' );
var my_server = my_http.createServer( ... ) ;
...

我已成功打开一个Windows命令提示符,cd到My Documents目录,执行.js文件,并收到'hello world'输出。我已将浏览器导航到正在运行的localhost端口(对于我的实验:http://localhost:1337/

但基于此,我有两个主要问题:

1 - 'http'在哪里...我想它是一个模块(?),但我在nodejs安装目录中找不到这样的目录。

2 - http方法createServer如何实际创建服务器?原生javascript有这样的方法吗?

2 个答案:

答案 0 :(得分:2)

node.js标准库是用Javascript和C ++编写的,C ++模块可以通过process.binding以js代码加载。专门针对http.createServer,它是_http_server.Server的包装器,它调用net.Server,它使用C ++ TCP wrapper

有关详细信息,请参阅here

要回答第二个问题,createServer只是创建并填充控制对象,实际工作在listen,首先是creates a handle,这就是C ++代码的实际位置{{ 3}}第一次。

答案 1 :(得分:0)

1)http是内置节点模块。您可以在此处阅读相关文档:https://nodejs.org/api/http.html。 Node提供了许多开箱即用的模块,以协助日常操作(与文件系统交互,发出HTTP请求,创建服务器,使用路径等)。

2)不确定“本机”JavaScript的含义。 JavaScript只是一种语言。我想你真的在询问运行时环境。如果您在浏览器中使用JavaScript,则无法启动HTTP服务器。但是Node.js在服务器上运行,因此在这种环境中它可以做各种你在浏览器中无法用JavaScript做的事情,比如访问文件系统。