2016-02-24 2 views
1

Я новичок в nodejs. Я успешно установил его на свой компьютер (и перезагрузился). Я создал hello_world.js внутри My Documents каталога (Я на окна хр компьютера):Какой собственный метод javascript способен создавать сервер?

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

Я успешно открыл окно командной строки, cd'd в каталог My Documents, выполнив файл .js , и получил выход «hello world». И я навигация мой браузер к порту работает LOCALHOST (для моего эксперимента: http://localhost:1337/)

Но у меня есть 2 главных вопросов на этой основе:

- где «HTTP» ... Я полагаю, это модуль (?), но я не нашел такой каталог в моем установочном каталоге nodejs.

- как работает метод http, createServer, на самом деле создать сервер? Есть ли у встроенного javascript такой метод?

+0

[http] (https://nodejs.org/api/http.html) - это собственный API-интерфейс узла. Он не встроен в язык, он встроен во время выполнения. – Bergi

+1

Значит ли это, что «http» находится в файле «node.exe»? ... – dsdsdsdsd

+0

Нет, 'http' и' creatServer' не являются частью javascript, они являются частью узла. Точно так же, как 'window' и' document' не являются частью javascript, они являются частью DOM api, выставленной браузером. –

ответ

0

1) http является встроенным модулем узла. Вы можете прочитать документацию для этого здесь: https://nodejs.org/api/http.html. Узел предоставляет множество модулей из коробки для помощи в повседневных операциях (взаимодействие w/файловых систем, создание HTTP-запросов, создание серверов, работа с путями и т. Д.)

2) Не уверен, что вы подразумеваете под " родной "JavaScript. JavaScript - это просто язык. Я думаю, вы действительно спрашиваете о среде выполнения. Если вы используете JavaScript в браузере, тогда вы не можете запустить HTTP-сервер. Но Node.js работает на сервере, поэтому в этой среде он может делать всевозможные вещи, которые вы не можете сделать с JavaScript в браузере, например, получить доступ к файловой системе.

+0

«node.js работает на сервере» ... Я думал, что nodejs был сервером ... если нет, то на каком сервере он запускается .... спасибо – dsdsdsdsd

+0

@dsdsdsdsd: «server» здесь относится к машина (компьютер), которая запускает серверное приложение ... uh ... – Bergi

2

Стандартная библиотека node.js написана на Javascript и C++, а модули C++ могут быть загружены в код js через process.binding. В частности, для http.createServer это оболочка около _http_server.Server, которая вызывает net.Server, в которой используется C++ TCP wrapper.

Для получения более подробной информации см. here.

Для ответа на второй вопрос, createServer только создает и заполняет объект управления, фактическая работа в listen, который первым creates a handle и это, где C++ код на самом деле called впервые.

Смежные вопросы