---
# System prepended metadata

title: 初めてのNode.js

---

# 初めてのNode.js

Node.jsはJavaScriptの実行環境です。
説明を飛ばしているところも多いのでいつでも聞いてください。

## 環境構築(Mac)

### Homebrewのインストール
省略。

`$ brew doctor`
で確認。

### Node.jsのインストール

> 余裕があればnodebrewのインストールからやるのがおすすめです。
ただ、変なところで詰まっても嫌なので今回は割愛。

`$ brew install node`

Node.jsとnpmのバージョンを確認して、入っていたら環境構築完了です。
`$ node -v`
`$ npm -v`

### yarnのインストール
npm互換のツールです。
これはやらなくても良いかもですが、npmより早くなるのでおすすめです。
>.npm/_cacache/hogehogeのpermissionで弾かれたのでこっちにした、という事情もあります。(未解決なので同じ問題に当たって解決したら誰か教えてください)

`$ npm install -g yarn`

導入後は`npm`を`yarn`に、
`npm install hoge`を`yarn add hoge`に、
`npm uninstall fuga`を`yarn remove fuga`に
`npm install`を `yarn`に
置き換えます。

## その1 - Hello World

適当なフォルダに拡張子が`.js`のファイルを作ります。
中身はこんな感じ
```javascript=
console.log("Hello World")
```

作ったら早速動かしてみましょう。

`$ node sample.js`

## その2 - 簡単なプロジェクト

その1と同じフォルダで作業します。
テーマはpackage.json

### 初期化

まず、プロジェクトの初期化をしましょう。
`$ npm init -y` or `$ yarn init -y`

package.jsonというファイルができていると思います。

新しく何かパッケージを入れると、ここに追加されていきます。
一つ、試しに入れてみましょう。

`$ npm install -S express` or `$ yarn add -S express`

package.jsonに追記されているのが分かると思います。

`$ npm install -D nodemon` or `$ yarn add -D nodemon`

package.jsonに追記するときはdependenciesとdevDependenciesに分かれます。
-Sと-Dのオプションでそれぞれに追加されるのですが、詳細は割愛。
基本的に-Sを使って、違いがわかってきたら-Dも使っていきましょう。-g（グローバル）は推奨されたら使っても良いかもしれないです。

パッケージのアンインストールも試してみましょう。

`$ yarn remove express`

package.jsonが書き換わっていることが分かると思います。

### 実行

`$ node sample.js`
`$ npx nodemon sample.js`

この2つコマンドを両方使って違いをみてみましょう。
下のコマンドを使うとプロセスが実行されたままなのが分かると思います。

nodemonはファイルの書き換えを感知して、実行し直してくれるパッケージです。
試しにsample.jsを書き換えてみましょう。

```javascript=
let x = 100
console.log('x', x)
```

保存と同時に、改めて標準出力されたのが分かると思います。

Ctrl + Cで実行を中断します。
再び`$ npx nodemon sample.js`と入力すると実行されるのですが、
Node.jsでは入力コマンドを変えることが多々あるので、それを保存しておく方法が存在します。
これもpackage.jsonが関係します。

licenceの下、dependenciesの上に、次の3行を追記します。

```json=6
"scripts": {
    "start": "nodemon sample.js"
  },
```

`$ npm start` or `$ yarn start`

nodemonを使って実行されたのが分かると思います。

> 捕捉: npxについて
> 1.インストールしたパッケージを使う。
> 2.インスールしていないパッケージを試しに使う。（一時的なインストール）
> という2つの機能があります。

> 捕捉: npm-scriptsについて
> package.jsonにscriptsというキーで追加できるコマンドをnpm-scriptsと言います。
> startだけは予約されたコマンドになっていて、`$ npm start`で実行しますが、
> 他のコマンドは`$ npm run <コマンド>`で実行します。

### おまけ - JSONとは
JavaScript Object Notationの略で
言葉の通り、JavaScriptで使われるObject(連想配列)の記法をもとにしたデータ形式です。
JavaScriptを書かないないときも、よく使うデータ形式の一つで、代表的な使用用途でいうと、APIが挙げられます。（APIが全てJSONというわけではないです。誤解を招きそうなので、念のため）

package.jsonも拡張子の通り、JSONの一種です。

## JavaScriptの基本文法

```javascript=

```