LoginSignup
7
6

More than 5 years have passed since last update.

Node.js基礎 リンクまとめ

Posted at

内容

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

とりあえず困ったら

公式リファレンス 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
* シングルスレッド・シングルプロセス
* イベントループモデル

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

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6