エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

nodeモジュールを使ったJSファイルをnodeコマンドで実行する方法

きっかけ

node.jsのモジュール使った簡単なAPIバッチを叩くスクリプトを作ったんだけど、どう実行したらいいんだ?ってなって調べた。

すでにプロジェクトがあるやつに対してやったので、package.jsonスクリプトかかない方法で実行できないか探した。

環境

Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19043

サンプルソース

やったのは、voicevoxのAPIを叩きたいので、いろいろ調べた。

import fetch from 'node-fetch';

const response = await fetch('http://localhost:50021/audio_query?speaker=1', {
  method: 'POST',
  body: 'こんにちは、音声合成の世界へようこそ',
});

console.log('===== response =====');
console.log(response);

const data = await response.json();
console.log('===== response.json =====');
console.log(data);

const response2 = await fetch('http://localhost:50021/synthesis?speaker=1', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: data,
});

console.log('===== response2 =====');
console.log(response2);

実行方法

一番大事なところ

  • mjsファイルとして作成する
    • js→mjsにファイルの拡張子を蛙
  • --experimental-modulesオプションを付けて実行
    • node --experimental-modules {mjsファイル}で実行できる

参考サイト

node.js モジュール(ES Module)のimport/exportにハマる。 - かもメモ

感想

nodeでjsファイルは何でも実行できると思っていた時期があった。
この日から、大丈夫になったはず。