[英]Programmatically running JavaScript with Node.js
我需要以編程方式(在Java中)使用Node.js運行JavaScript並讀取錯誤。 有兩種方法:
node -e <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.