2015-12-10 1 views
0

Я пытаюсь понять, как использовать module.exports в nodejs. У меня есть эта строка кода в app.jsmodule.exports http не определен при создании сервера

// Creating the server 
var createServer = require('./moduleExports/creatingServer'); 
createServer(); 

и этот код в другом файле, creatingServer.js

module.exports = function() { 

socketServer = http.createServer(app).listen(app.get('port'), app.get('ip'), function() { 
    console.log("Express server listening at %s:%d ", app.get('ip'), app.get('port')); 
}); 

} 

есть больше, но я вырезал. Я получаю сообщение об ошибке, когда я запускаю node app.js, он говорит, что http не определен. Я потребовал его в файле app.js.

ответ

0

изменить creatingServer.js на:

var http = require('http'); 
module.exports = function() { 

    socketServer = http.createServer(app).listen(app.get('port'), app.get('ip'),  function() { 
     console.log("Express server listening at %s:%d ", app.get('ip'),  app.get('port')); 
    }); 

} 

Node.js файлы не знают кода вне себя. require('http') извлекает этот модуль и позволяет использовать его в файле.

Вы также используете переменную app, которая на самом деле не требуется для базового HTTP-сервера, и похоже, что вы скопировали код из примера express?

+0

Это странно, мне нужно срочно потребовать тоже ... Я должен сделать это дважды. Разве нет способа переместить какой-то код в другой файл? – Rockstar5645