Help us understand the problem. What is going on with this article?

Node.js基礎 リンクまとめ

More than 3 years have passed since last update.

内容

業務でよく使いそうなことが書いてあるところをまとめる

とりあえず困ったら

公式リファレンス https://nodejs.org/en/docs/
最新バージョン https://nodejs.org/api/
バージョン4系 https://nodejs.org/dist/latest-v4.x/docs/api/
バージョン0.12系 https://nodejs.org/docs/v0.12.7/api/

Nodeの依存関係

  • module.exports
    ソースを追う時module.exportsやexports.xxxでモジュールを定義、requireで読み込まれるので、そこを追ってく。書き方いろいろある
    http://www.yoheim.net/blog.php?q=20150101

  • node_modules
    npmモジュールをグローバルとローカル両方入れてて片方だけカスタムしてる場合とかある。その時読み込まれるnode_modulesのロード順序
    https://www.ryuone.com/diary/20110328.html

  • JSにおけるPrototype
    最近のnodeはclassが使えるけど、古いモジュールはPrototypeで構成されてるのでそこらへんの基本も覚えたい
    http://qiita.com/takeharu/items/809114f943208aaf55b3

よく使う標準モジュール

npm installで入れなくても使える基本関数
let module = require('{モジュール名}');
で使う

fs

ファイル入出力
https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback

child_process

コマンドexecしたり子プロセス立ち上げたり
https://nodejs.org/api/child_process.html#child_process_child_process

process

プロセスの情報を取得したりいろいろする
https://nodejs.org/api/process.html

プロセスに対するシグナル受け取る
https://nodejs.org/api/process.html#process_signal_events
コマンドライン引数受け取る
https://nodejs.org/api/process.html#process_process_argv
プロセスが落ちないようにエラーハンドリング
https://nodejs.org/api/process.html#process_event_uncaughtexception

util

その他いろいろ
https://nodejs.org/api/util.html
ハッシュ(Object)を詳細にダンプ
https://nodejs.org/api/util.html#util_util_inspect_object_options

Ecma記法

最近のバージョンだとEcmaScript6に対応していたりするので、classやPromiseやlet、constが使えます
https://html5experts.jp/1000ch/16984/

通信周り

Socket.IO

httpモジュール

https://nodejs.org/api/http.html#http_event_connect
↓記事みたいにローカルで簡単にサーバー立てられる
http://jxck.hatenablog.com/entry/20101022/1287765155

Socket

UDP、TCPそれぞれでSocket作れる
https://nodejs.org/api/dgram.html#dgram_udp_datagram_sockets
http://takaheraw.hatenablog.com/entry/2013/01/04/115434

非同期処理

非同期処理を単純に書いていくとコールバックのネストがどんどん増えていきいわゆるコールバック地獄になります。なので何かしらのライブラリで非同期処理を縦に流れる処理のように書くことが多いです。
ベストプラクティスは人によって違うし、Nodeのバージョンによっても変わっていくのでプロジェクトで採用されているものがあればそれに従うか、自分が選べるなら好みのものを選びましょう

標準関数

v4くらいからはPromiseyieldが標準で使えるので、それが多いかも
http://qiita.com/kidach1/items/d997df84a0ede39d76ad

npmモジュール

標準が定まっていなかった0.x系はモジュールで非同期処理書くことが多かったです。
JSに非同期処理のライブラリが数多いので、自分が知っているものをいくつか挙げておきます

そもそもNode.jsって

何が特徴で、何がメリットか?記事古いけど現在Node.jsのコミッターしてる方の記事
http://www.iij.ad.jp/company/development/tech/activities/nodejs/

処理が非常に短時間でイベント処理が重要なアプリ(よく言われるチャットアプリ)などでは、Node.jsはそのメリットを最大限に生かせる領域です。

言語の特徴として
* ノンブロッキングIO
* シングルスレッド・シングルプロセス
* イベントループモデル

あたりを取り上げておきます。説明は長くなる+難しいので別記事で(書かないかもしれない)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away