質問するログイン新規登録

回答編集履歴

1

インデントが変だったので修正

2022/02/20 08:01

投稿

miyabi-sun
miyabi-sun

スコア21482

answer CHANGED
@@ -50,27 +50,27 @@
50
50
 
51
51
  client.on("messageCreate", message => {
52
52
  if (message.author.id === "1234") {
53
- if (message.content.startsWith("js\n")) {
53
+ if (message.content.startsWith("js\n")) {
54
- let body =message.content.substring(3);
54
+ let body =message.content.substring(3);
55
- let log = "";
55
+ let log = "";
56
56
 
57
- fs.writeFileSync("sample.js", body)
57
+ fs.writeFileSync("sample.js", body)
58
- const ls = spawn("node sample.js");
58
+ const ls = spawn("node sample.js");
59
- ls.on("data", m => log = log + m); // 文字列は小出しに来るので都度log引数に吸い出す
59
+ ls.on("data", m => log = log + m); // 文字列は小出しに来るので都度log引数に吸い出す
60
- ls.on("close", code => {
60
+ ls.on("close", code => {
61
- if (code == 0) {
61
+ if (code == 0) {
62
- log = log || "出力なし";
62
+ log = log || "出力なし";
63
- message.reply("```\n" + log + "```\n実行時間:" + (Date.now() - before) / 1000 + "秒"); // console.logの表示内容はJavaScriptのコードというわけではないのでjsは削った
63
+ message.reply("```\n" + log + "```\n実行時間:" + (Date.now() - before) / 1000 + "秒"); // console.logの表示内容はJavaScriptのコードというわけではないのでjsは削った
64
- return;
64
+ return;
65
- }
65
+ }
66
- message.reply("実行時間が5秒を超えたため強制終了しました");
66
+ message.reply("実行時間が5秒を超えたため強制終了しました");
67
- });
67
+ });
68
- setTimeout(() => {
68
+ setTimeout(() => {
69
- // exitCodeがnullならば、まだ実行中と見なしてプロセスを終了させる
69
+ // exitCodeがnullならば、まだ実行中と見なしてプロセスを終了させる
70
- if (ls.exitCode == null) ls.kill("SIGINT");
70
+ if (ls.exitCode == null) ls.kill("SIGINT");
71
- }, 5000);
71
+ }, 5000);
72
- }
72
+ }
73
- }
73
+ }
74
74
  }
75
75
  ```
76
76