Node.js:dispose / recreate HTTP服务器

时间:2013-05-25 20:53:32

标签: node.js

我第一次玩弄Node.js。我有标准的基本server.js文件:

var server = require('http').createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
});
console.log('Server started and listening...');
server.listen(1337, '127.0.0.1');

现在,我想知道怎么做,给定server,我该如何处理实例并启动一个新实例?例如,这是我的天真伪代码:

function launchServer() {
    var server = require('http').createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    });
    console.log('Server started and listening...');
    server.listen(1337, '127.0.0.1');
    return server;
}

var server = launchServer();

require('fs').watchFile('server.js', function(curr, prev) {
    console.log('Restarting server...');
    server = null;
    server = launchServer();
}); 

看看我在这里尝试做什么 - 每当我改变它时重新加载server.js文件,因为我玩游戏并学习node.js?

我不一定对“正确”的方式感兴趣或使用框架来做这件事;我首先通过艰苦,天真的方式来学习基础知识,这很有趣。

1 个答案:

答案 0 :(得分:0)

您可以关闭服务器,等待回调,从require缓存中删除服务器,然后调用启动服务器方法。

请参阅:stackoverflow question: node.js require() cache - possible to invalidate?

NodeJS documentation: server.close([callback])

了解更多信息。