# Node.jsでfsを使った同期でのファイルの読み書き

# readFileSyncとwriteFileSync

一晩明けても非同期プログラミングに慣れないおじさんですが(これはぼちぼち、この先生きのこる🍄的なアレかもな…笑。どっかでちゃんと勉強しよう。。)、、

  1. 前回クロールしたTimestampをファイルから取得
  2. URLのlastmodが上記1.の前回クロールしたTimestampより大きいものだけスクレイピングしてJSONの配列作ってAlgoliaへindexing
  3. 現在のTimestampをファイルに保存

みたいな流れで処理する場合に(まぁ、クロールしてる間に投稿があったらどうすんのよ?とかそういうのは一旦置いておかせていただいて…)、普通にfs.readFileとかやってるとなんかしっくりこなくて(コールバックがなんかアレだし、Promiseとか使うのも慣れないし…w)、どうすっぺかなぁと思ってググってたら、readFileSyncっていうのと、writeFileSyncっていうのが出てきたので👇こんな感じでやりくりすることが出来るようになりました。

var lastcrawl = fs.readFileSync("lastcrawl", 'utf8');
fs.writeFileSync("lastcrawl", now);

# AlgoliaのobjectID

とりあえず一意な文字列ならなんでも良かったので、(locはサイトマップのxmlから取得できるURL)👇のようにしたのだけど、

Buffer.from(loc, 'ascii').toString('base64');

URLというかドメインまでは各記事一緒なので、substrすりゃ良かった感があって、、いや、今やります。すぐやります。笑

"aHR0cHM6Ly93d3cueW9zaGlkYS5yZWQvMjAyMC8wNC8xMi9wb25rb3RzdS8=" "aHR0cHM6Ly93d3cueW9zaGlkYS5yZWQvMjAyMC8wNC8xMi9jb25zdWx0YW50Lw==" "aHR0cHM6Ly93d3cueW9zaGlkYS5yZWQvMjAyMC8wNC8xMS9hdWJlcmdpbmUv" "aHR0cHM6Ly93d3cueW9zaGlkYS5yZWQvMjAyMC8wNC8xMS9rdWJvenVrYS8=" "aHR0cHM6Ly93d3cueW9zaGlkYS5yZWQvMjAyMC8wNC8xMC9lbm90Zm91bmQv"

# これで一通りindexing側の機能は出来たのだけれど、、

やっぱりNode.jsを使った非同期プログラミングももう少し戯れたいなぁと。

Amazonで本とか探してみたけど、こればっかりはQiitaにそれ系の良記事がたくさんあるので、時間作って片っ端から写経しつつ勉強してみようかな。

Node.js 超入門[第2版]
Node.js 超入門[第2版]
posted with amachazl at 2020.04.13
掌田津耶乃
秀和システム (2018-12-18)
売り上げランキング: 6,467
このエントリーをはてなブックマークに追加

Algolia検索からの流入のみConversionボタン表示