2016-01-05 3 views
3

Используя Socket.io пример, как мой пример:Зачем вам нужно использовать функцию require и вызывать функцию за один шаг в узле?

Почему эта работа в узле:

var io = require('socket.io').listen(server);

Но делать это в двух шагах не делает? (То есть):

var io = require('socket.io'); 
io.listen(server); 
+0

как работать с узлом, так и с ошибкой? – trquoccuong

+0

В первом коде 'io' получает результат вызова' listen', а не 'require'. – JohnnyHK

+0

@trquoccuong Вот что я подумал. Там ошибка 'TypeError: io.on не является функцией' – Startec

ответ

3

Случай 1:

var io = require('socket.io').listen(server); 

Здесь io получает набор в результате вызова listen(server) из socket.io модуля.

Случай 2:

var io = require('socket.io'); 
io.listen(server); 

Здесь io получает значение самого модуля socket.io.

Таким образом, они выполняют ту же функцию, но io заканчиваются на разные значения.

Цепочка вызовов функций, как видно в случае 1, является общей идиомой в узле.js, но если вы действительно хотите использовать две строки, а io все равно в конечном итоге установить так, как в случае 1, просто запишите результат от require звонок отдельно:

var socketio = require('socket.io'); 
var io = socketio.listen(server); 
+0

Есть ли способ сохранить их в отдельных строках (как и в остальном коде узла) или их нужно настроить таким образом? – Startec

+1

'var sio = require ('socket.io'); var io = sio.listen (server); 'Там две строки. –

+0

@PatrickRoberts Мне действительно очень нравится – Startec

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