簡體   English   中英

使用Node.js以編程方式運行JavaScript

[英]Programmatically running JavaScript with Node.js

我需要以編程方式(在Java中)使用Node.js運行JavaScript並讀取錯誤。 有兩種方法:

  1. 呼叫node -e <javascript>
  2. 將JavaScript保存到臨時文件中,然后調用node temp.js

它們有何不同?

似乎第一種方法更有效,但是當我運行類似

process.on('uncaughtException', function(err) {
    console.error(typeof(err));
});
function x_5(x_6, x_7) {
  var x_8 = Infinity;
}
throw x_5;

它打印

[eval]:8
throw x_5;
      ^
function

但是我想要的只是最后一行。 第二種方法只給了我最后一行。 因此,我試圖了解兩種方法的不同之處,以及如何擺脫不必要的錯誤消息。

如您所見, node -e script會將異常轉儲到stderr,因此您可以將結果打印到stdout。

用console.log代替console.error

process.on('uncaughtException', function(err) {
    console.log(typeof(err));
});

在Java方面,從stdout獲取結果,忽略stderr

String[] command = {"node", "-e", js};
Process p = Runtime.getRuntime().exec(command);
InputStream in = p.getInputStream();
for (int i = 0; i < in.available(); i++) {
    System.out.println("" + in.read());
}

暫無
暫無

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

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