NodeJS:需要获取对现有服务器的引用或closures它

好的 – 所以有些东西我无法find,我觉得可能相当简单。 我创build了一个服务器,但忘记捕获variables中发回的引用。

http.createServer(function (request, response) { // Send the HTTP header // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // Send the response body as "Hello World" response.end('Hello World\n'); }).listen(8081); 

现在我试图closures服务器,但是我没有对服务器的引用。 有什么方法可以从nodejs解释器获取引用或closureshttp服务器,以避免使用taskmanager来终止进程。 在Win 7 NodeJS解释器上工作。

创build一个新的是不允许的。

  const server = http.createServer(function(request, response) { .. // Send the HTTP header .. // HTTP Status: 200 : OK .. // Content Type: text/plain .. response.writeHead(200, {'Content-Type': 'text/plain'}); .. .. // Send the response body as "Hello World" .. response.end('Hello World\n'); .. .. }).listen(8081, () => { .. .. console.log("closing the server in 5 seconds"); .. .. setTimeout(() => server.close(), 5000); .. .. }); ndefined Error: listen EADDRINUSE :::8081 at Object.exports._errnoException (util.js:1012:11) at exports._exceptionWithHostPort (util.js:1035:20) at Server._listen2 (net.js:1252:14) at listen (net.js:1288:10) at Server.listen (net.js:1384:5) at repl:10:4 at sigintHandlersWrap (vm.js:32:31) at sigintHandlersWrap (vm.js:96:12) at ContextifyScript.Script.runInContext (vm.js:31:12) at REPLServer.defaultEval (repl.js:308:29) 

你可以使用server.close()来closures它。 或者用Ctrl-C杀死进程。

http.createServer返回服务器,所以把返回值赋给variables/常量,然后就可以引用服务器了。

 const server = http.createServer(function(request, response) { // Send the HTTP header // HTTP Status: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // Send the response body as "Hello World" response.end('Hello World\n'); }).listen(8081, () => { console.log("closing the server in 5 seconds"); setTimeout(() => server.close(), 5000); });