Node.js 入門してみた
※知識が増えたら、継ぎ足して改良していきたいと思います。
前置き
Pythonしかわからない状態を脱するために、他言語に挑戦しようとしていました。
「あれ?Javascriptってフロントエンドの言語じゃないの?バックエンドもできるの?」と知って、Node.jsに興味を持ったため、調べてみました。
Node.jsとは?
-
Javascriptの実行環境 = ブラウザ ではなく、コマンドラインでjsファイルを実行できるようにパッケージ化された環境を提供してくれるもの。以下コマンドで実行できる
node jsファイル名
-
ディレクトリ作成やファイル作成などの、サーバーサイドの操作もできる
-
Pythonみたいに、モジュールがたくさんある。それらは
npm
で管理されているし(Pythonでいうpip
)、同コマンドでダウンロードもできる
始め方(Windowsの場合)
※入力テキストを解析して、その言語コードをfranc
で特定し、langs
を使って言語名に変換するスクリプトを作っていく中でNode.jsへの理解を深めました。
※作成したスクリプトはこちらにアップしています。https://github.com/sakih5/backend-study_langage-detector
-
公式サイトからNode.jsのインストーラ(
.msi
ファイル)をダウンロードする -
インストーラ(
.msi
ファイル)をダブルクリックして、インストールを行う -
以下コマンドでインストールできたか確認する
node -v npm -v # Node.jsをインストールすると、同時にインストールされる
-
下記コマンドを実行する。
package.json
が自動生成される。npm init
-
以下コマンドを実行する。
package.json
のdependencies
に、このディレクトリにインストールされたモジュール一覧が追記されているので、インストールされたことを確認する。npm install franc@5.0.0 langs
-
jsファイルを作成。ファイル名
detect-language.js
で保存const franc = require('franc'); const langs = require('langs'); // 入力テキスト(他の言語に変えてもOK) const text = process.argv[2] || 'This is a sample English sentence.'; // francで言語コードを取得(例: 'eng') const langCode = franc(text); if (langCode === 'und') { console.log('言語を特定できませんでした。もっと長い文を試してください。'); } else { const language = langs.where('3', langCode); console.log(`検出された言語コード: ${langCode}`); console.log(`言語名: ${language.name}(${language.local})`); }
-
以下コマンドで実行。
node detect-language.js "Ceci est une phrase en français"
以下のような出力が得られればOK。
検出された言語コード: fra 言語名: French(Français)
感想
-
Pythonのように
venv
を作らなくても、ディレクトリごとにモジュールがインストール・管理される(=package.json
で見れる)ことにびっくり。→ PythonはPCを汚すといわれている所以が他言語との比較でわかった気がしました。
Discussion