Node.js 基礎入門[No.2]

  • グローバルオブジェクトとは

  • 遅延実行

  • アロー関数

  • モジュールの使い方

  • json形式でファイルを読み書きする

グローバルオブジェクト
Node.js
の場合はglobal
ブラウザの場合はwindow
グローバルの配下にあるグローバルオブジェクトはどこからでも実行可能globalを省略可能

プロパティ例
__dirname 
実行中のソースコードのデイレクトリパスを取得
__filename 
実行中のソースコードのファイルパスを取得

遅延実行

非同期処理の一つ
指定した処理を先送りにする方法
5種類ある

process.nextTick(callback);//自身の再起呼び出しはしない。無限ループを避けるため
Promise.resolve().then(callback);
global.setImmediate(callback, delay);//nextTickよりこちらを使う
global.setTimeout(callback, delay);//delayを0にする場合はsetImmediateを使う
global.setInterval(callback, delay);

※callbackとは関数に呼び出してもらう関数※()をつけずに呼び出す
呼び出しもとは高等関数

callbackと非同期処理、promiseの参考


省略したアロー関数の書き方

let sayHello1 = name => `${name}さんおはよう`;

function sayHello2(name){
    return `${name}さんおはよう`;
};

console.log(sayHello1("fukada"));//fukadaさんおはよう
console.log(sayHello2('fukada'));//fukadaさんおはよう

↑2つの関数は結果が同じ
引数が一つの場合()
中身が1行の場合は{}とreturnが省略できる

アロー関数参考

モジュールの使い方

index.htmlの<script> type='module' 属性を追加して使う

2種類ある

ES modulesの場合
import * as 変数名 from 'パッケージ名'; 変数名.でメソッドやプロパティを使える
import {変数名} from 'モジュール名'; そのまま変数名が使える
※ファイルをインポートする場合は拡張子をつける

export let 変数名 定義するときにつける関数やクラスの場合は末尾に;をつけない
最後にまとめて export {変数1, 変数2};

package.jsonに "type": "module" を追加するまたは拡張子を.mjsにする

デフォルトエクスポート
1つのファイルに一つ
export defaultと宣言する
import 変数名 from 'モジュール名'

common JSの場合
const 変数名 =require(./パッケージ名)
※拡張子はいらない
変数名.hogeで使う

エクスポートするとき module.exports {変数1, 変数2};
exports.変数 
変数につける
※JSでは関数も変数として扱える

json形式でファイルを読み書きする

fs(file system)をインポートする
import * as fs from 'node:fs';

JSON.stringify(オブジェクト) 
json形式に変更する
JSON.parse(json形式) オブジェクトに変更する

読み込み↓

fs.readFile('./sample.json', 'utf-8',(err,data)=> {
    const object = JSON.parse(data);
    console.log(object);
}//引数dataはsample.jsを表す


書き込み↓

fs.writeFile('./sample.json', JSON.stringify(object),
    ()=> console.log('書き込み完了'));
//実行コマンドの後ろの引数を受け取る
const request = process.argv[2];


この記事が気に入ったらサポートをしてみませんか?