簡體   English   中英

運行Node.js程序時保持對控制台的訪問

[英]Maintain access to console while running Node.js program

我可以向運行.js腳本的Node.js進程發送命令嗎? 目前,我只運行node並將代碼粘貼到控制台中。 這不是很方便。

您可以像這樣啟動一個repl服務器(可以訪問腳本的作用域):

var repl = require('repl'),
    net = require('net');

var REPL_PORT = 2323;

var replServer = net.createServer(function(sock) {
  repl.start({
    prompt: 'myrepl> ',
    input: sock,
    output: sock,
    eval: function(cmd, context, filename, callback) {
      var ret, err;
      try {
        ret = eval(cmd);
      } catch (e) {
        err = e;
      }
      if (err)
        callback(err);
      else
        callback(null, ret);
    }
  }).on('exit', function() {
    sock.end();
  });
});
replServer.on('error', function(err) {
  console.log('REPL error: ' + err);
});
replServer.on('close', function(had_err) {
  console.log('REPL shut down ' + (had_err ? 'due to error' : 'gracefully'));
});
replServer.on('listening', function() {
  console.log('REPL listening on port ' + REPL_PORT);
});
replServer.listen(REPL_PORT, '127.0.0.1');

然后只需在端口2323上通過telnet到localhost,您將得到一個repl提示符,您可以在腳本中定義的變量和類似的內容鍵入內容並戳入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM