2014-12-18 4 views
0

소켓 모듈과 io 기능을 제외하고 다음 코드를 별도의 js 파일에 넣어서 재사용하려고합니다.node.js에서 재사용을위한 서버 모듈 만들기

server.js

var express = require('express'), 
app = express(), 
http = require('http').createServer(app), 
url = require('url'), 
cookieParser = require('cookie-parser'), 

module.exports = { 
express_app : function(){ 

    app.use(cookieParser()); 
    app.get('/p/:tagId', function(req, res){ 
    key = req.cookies["phpsession"]; 
    var filename = req.param("tagId"); 
    res.sendfile(compare+filename+'.html'); 
    }); 
}, 

server_http: function(port){ 
    http.listen(port, function(){ 
    console.log('listening on *:'+port); 
    }); 
} 
} 

index.js

var server = require('./server'); 
    server.express_app(); 
    server.server_http(3000); 
    var io = require("socket.io").listen(server.server_http(3000)); 
    io.on('connection', function(socket){...... 
:
var express = require('express'), 
app = express(), 
http = require('http').createServer(app), 
url = require('url'), 
cookieParser = require('cookie-parser'), 
io = require("socket.io").listen(http), // question with this line 

app.use(cookieParser()); 
app.get('/p/:tagId', function(req, res){ 
    key = req.cookies["phpsession"]; 
    var filename = req.param("tagId"); 
    res.sendfile(filename+'.html'); 
}); 

io.on('connection', function(socket){ 

//..Other code....// 

}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

index.js

다음은이 guide을 다음 내 시도이다

모듈을 만들고 내보내는 적절한 방법입니까? 내가 확실하지 않다하는이 새로운하는 index.js 라인이다 : 나는 두 번 http.listen를 호출하는 것 같은

server.server_http(3000); 
    var io = require("socket.io").listen(server.server_http(3000)); 

것 같다의 CONSOLE.LOG 날 나는 server.Can을 실행하자마자 listening on *:3000 중복 제공 server.js를 변경하는 방법에 대한 제안 사항을 제공합니다.

+0

나는 그것을 할 것입니다 매우하지 어떻게, 왜뿐만 아니라 server.js 내부의 IO 설정을 두지? 당신은'server.socket_io'로 그것을 드러 낼 수 있습니다. –

답변

1

socket.io 문제로 사용해보세요. Server.js에서

:

server_http: function(port, callback){ 
    http.listen(port, function(){ 
    callback(this); // this = server instance 
    console.log('listening on *:'+port); 
    }); 
} 

하는 index.js :

server.server_http(3000, function (server) { 
    var io = require("socket.io").listen(server); 
    io.on('connection', function(socket){...... 
});