概要
- node.jsでの開発で、テキストエディタによって
require()
ではなくimport()
の利用を強制する。 - Googleの検索結果で、意外と
import()
を使ったコードサンプルが見つからなかった。 - なので、自分がわかった範囲で
import()
によるサンプルコードをまとめていく
注意
- ファイル名の拡張子は
.mjs
とする
コードサンプル
JSONファイルの入出力
事前準備
- fsモジュールのインストール
# npm install fs
コード
import fs from 'fs'; // const fs = require('fs') と同じ
const SRC_FILE = "./src.json";
const RESULT_FILE = "./result.json";
// ファイルの読込
const data = JSON.parse(fs.readFileSync(SRC_FILE, 'utf8'));
// ファイルの出力
fs.writeFileSync(RESULT_FILE, JSON.stringify(data));
CSVデータの入出力
参考
事前準備
- csv関連モジュール(とfsモジュール)のインストール
# npm install fs
# npm install csv-parse
# npm install csv-stringify
コードサンプル
サンプルデータ
名前,年齢,電話番号,都道府県
太郎,30,090-1111-2222,東京都
花子,28,080-2222-3333,埼玉県
田中,25,080-3333-4444,神奈川県
1行ずつ読込
"use strict";
import fs from 'fs';
import { parse } from 'csv-parse/sync';
const data = fs.readFileSync('test.csv');
const records = parse(data);
for (const record of records) {
console.log(record);
}
// 結果
// [ '名前', '年齢', '電話番号', '都道府県' ]
// [ '太郎', '30', '090-1111-2222', '東京都' ]
// [ '花子', '28', '080-2222-3333', '埼玉県' ]
// [ '田中', '25', '080-3333-4444', '神奈川県' ]
先頭行をカラム名にして出力
"use strict";
import fs from 'fs';
import { parse } from 'csv-parse/sync';
const data = fs.readFileSync('test.csv');
const records = parse(data, {
columns: true,
});
console.log(records);
// 結果
// [
// { '名前': '太郎', '年齢': '30', '電話番号': '090-1111-2222', '都道府県': '東京都' },
// { '名前': '花子', '年齢': '28', '電話番号': '080-2222-3333', '都道府県': '埼玉県' },
// { '名前': '田中', '年齢': '25', '電話番号': '080-3333-4444', '都道府県': '神奈川県' }
// ]
CSVの書出
"use strict";
import fs from 'fs';
import { stringify } from 'csv-stringify/sync';
const data = [
{ Music: '六兆年と一夜物語', Artist: '和楽器バンド' },
{ Music: '天樂', Artist: '和楽器バンド' },
{ Music: '流星', Artist: '和楽器バンド' },
];
const csvString = stringify(data, {
header: true,
});
fs.writeFileSync('out.csv', csvString);
// 結果ファイル
// Music,Artist
// 六兆年と一夜物語,和楽器バンド
// 天樂,和楽器バンド
// 流星,和楽器バンド
ログ出力
参考
事前準備
# npm install log4js
サンプルコード
"use strict";
import log4js from 'log4js'
const logger = log4js.getLogger()
logger.level = 'all'
logger.info('Some info messages')
// 結果
// [2022-04-10T22:43:26.386] [INFO] default - Some info messages
fetch
事前準備
# npm install node-fetch
コードサンプル
"use strict";
import fetch from "node-fetch";
(async()=>{
const response = await fetch("https://www.example.com/",{
method: "GET"
})
const html = await response.text();
console.log(html)
})()
設定ファイルの管理
事前準備
# npm install config
config/default.json
{
"aa": {
"bb": "cc"
}
}
コードサンプル
"use strict";
import config from "config"
const aa_bb = config.aa.bb;
console.log(aa_bb ); // cc