1

我只是第一次玩 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?

我不一定对执行此操作的“正确”方式或使用框架执行此操作感兴趣;我对通过先以艰难、幼稚的方式做事来学习基础知识很感兴趣。

4

1 回答 1

0

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

请参阅:stackoverflow 问题:node.js require() 缓存 - 可能无效?

NodeJS 文档:server.close([callback])

了解更多信息。

于 2013-05-25T21:36:30.547 回答