🐡

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

  1. 公式サイトからNode.jsのインストーラ(.msiファイル)をダウンロードする

  2. インストーラ(.msiファイル)をダブルクリックして、インストールを行う

  3. 以下コマンドでインストールできたか確認する

    node -v
    npm -v # Node.jsをインストールすると、同時にインストールされる
    
  4. 下記コマンドを実行する。package.jsonが自動生成される。

    npm init
    
  5. 以下コマンドを実行する。package.jsondependenciesに、このディレクトリにインストールされたモジュール一覧が追記されているので、インストールされたことを確認する。

    npm install franc@5.0.0 langs
    
  6. 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}`);
    }
    
  7. 以下コマンドで実行。

    node detect-language.js "Ceci est une phrase en français"
    

    以下のような出力が得られればOK。

    検出された言語コード: fra
    言語名: French(Français)
    

感想

  • Pythonのようにvenvを作らなくても、ディレクトリごとにモジュールがインストール・管理される(=package.jsonで見れる)ことにびっくり。

    → PythonはPCを汚すといわれている所以が他言語との比較でわかった気がしました。

Discussion