なになれ

IT系のことを記録していきます。

Web画面経由でコマンドを操作する

Web画面経由でコマンドを操作してみました。
Node.jsでExpressを利用しています。

今回の実装時のポイントは以下の通りです。

Node.jsでコマンドを実行する

Node.jsの標準APIであるchild_processを使用します。
以下のようにexecメソッドでコマンドを実行することができます。

const { exec } = require('child_process');
exec('echo "The \\$HOME variable is $HOME"', (error, stdout, stderr) => {
  console.log(stdout);
});

画面を描画する

画面の描画にはejsを使いました。
ejsファイルではありますが、内容はHTMLそのものです。

ejs.renderFile('./views/index.ejs', (err, str) => {
  if (err) {
    res.send(err.message);
  }
  res.send(str);
});

感想

簡単なWebアプリケーションを作るのにExpressは楽だと思います。
今回の方法を使ってラズパイで作成した赤外線リモコンをWeb画面経由で操作しています。

hi1280.hatenablog.com

参考情報

Child Process | Node.js v9.4.0 Documentation