JavaScript

Node.js CODE TIPS

ファイル読み込み

テキストファイルの読み込みである場合'utf-8'のようにエンコーディングを指定する。

const fs = require('fs');

// sync
const text = fs.readFileSync('./input.txt', 'utf8');

// async
fs.readFile('./input.txt', 'utf8', function(err, text) {
  if (err) throw err;
  console.log(text);
});

Shift JISファイルの読込と書込

$ npm install -S iconv-lite
const fs = require('fs');
const iconv = require('iconv-lite');

const file = fs.readFileSync('./input.txt');
const text= iconv.decode(Buffer.from(file), "Shift_JIS");
// ...
const buf = iconv.encode(text, "Shift_JIS");
fs.writeFileSync('output.txt', buf, ()=>{});

ファイル書き込み

ファイル書き込み(上書き)

require("fs").writeFileSync("out.txt", "Hello!");

1列読み込み

sample.txt
red
blue
green
yellow
const fs = require('fs');
const content = fs.readFileSync('sample.txt').toString();
const colors = content.trim().split('\n');
//=> [ 'red', 'blue', 'green', 'yellow' ]

glob

npm i glob
const glob = require('glob');

const files = glob.sync("**/*.js", options);

URL Path Join

url.resolve(from, to) を使用する。 よくある join による連結ではなく、現在地と行き先を渡す。 from で指定された URL を現在地として to という行き先を命令された場合に 結局どこに行くのかを解明した結果を返す。 from は http:// で開始する必要はない。 逆に to が http:// から始まる URL でもよい。 それは外部サイトに移動する時と同じ挙動と言える。

url.resolve('/japan/tokyo/shibuya', 'ebisu')
//=> '/japan/tokyo/ebisu'
url.resolve('http://world.com', 'japan')
//=> 'http://world.com/japan'
url.resolve('http://world.com/japan/tokyo/', '../osaka/')
//=> 'http://world.com/japan/osaka/'
url.resolve('http://world.com/japan/tokyo/', '/america/new-york')
//=> 'http://world.com/america/new-york'
url.resolve('http://world.com', 'https://google.com')
//=> 'https://google.com/'

tktk