Node.js関連のことを調べてみた2020年03月25日

Node.js関連のことを調べてみた2020年03月25日

Node.jsでファイル出力

下記の『同期処理メソッド「writeFileSync」』を参考に実施
[node.jsでファイルの入出力操作](https://qiita.com/shirokuman/items/509b159bf4b8dd1c41ef)

元記事を表示

N予備校の教材でAjaxでCORSを試してみる

# やりたいこと

N予備校のAjaxのページに「同一生成ポリシーを満たさない場合CORSにひかかって通信できません」と書かれているが、そのあたりの回避策について特に紹介されていなかったので`Access-Control-Allow-Origin`を試してみる。

## 前提知識

* CORS https://developer.mozilla.org/ja/docs/Web/HTTP/CORS
* N予備校 https://www.nnn.ed.nico/courses/497/chapters/6891
* この教材をそのまま使います(非会員は見れません)

## 環境

* Vagrant ubuntu(Node.jsにて上記のリンクのサーバが稼働している)
* 手元のマシン(Mac)

## 実験

* 手元のマシンのブラウザから、Vagrant上のNode.jsに対してAjax通信を行い失敗することを確認する
* CORSを回避するためにサーバー側にヘッダーを挿入する

### 修正前

* LoadAvgが表示されない
* コンソールログをみると以下のエラーが発

元記事を表示

GraphQL Mesh は何を解決するのか? ~ Qiita API を GraphQL でラップして理解する GraphQL Mesh ~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163591/c72738fa-a7bc-9b9f-dd68-cbc29dec5af4.png)

# GraphQL Mesh とは

[The Guild](https://twitter.com/TheGuildDev) から [GraphQL Mesh](https://github.com/Urigo/graphql-mesh) が発表されました。

元記事を表示

homebrewでnodeモジュールのダウングレード

homebrewでダウングレードしたnodeを使用する際に、詰まった部分を残します。

###環境
インストール済みのnodeバージョン:13.11.0
インストールしたいnodeバージョン:12.16.1

macOS:10.14.3

##nodeバージョン12系をインストール
バージョン指定の方法が12系の場合`@12`で最新の12系のバージョンがインストールできます。

“`
$ brew install node@12
==> Downloading https://homebrew.bintray.com/bottles/node@12-12.16.1.mojave.bott
==> Downloading from https://akamai.bintray.com/3d/3dee3426e2ea8928d0724a801591a
######################################################################## 100.0%
==> Pouring node@12-12.16.1.mojave.bott

元記事を表示

[Node.js] request モジュール がDeprecated になっていた

### 内容
> As of Feb 11th 2020, request is fully deprecated. No new changes are expected to land. In fact, none have landed for some time.

– 2020年2月11日をもってDeprecatedになったようです。
– 下記のモジュールについても `request` と依存関係があることから非推奨となりました。
– [request-promise](https://github.com/request/request-promise)
– [request-promise-native](https://github.com/request/request-promise-native)
– [request-promise-any](https://github.com/request/request-promise-any)
– 代替手段については[このissue](https://github.com/request/req

元記事を表示

三井住友銀行口座の残高を自動取得する(Puppeteerで)

# やりたいこと・背景
– [三井住友銀行のインターネットバンキング SMBCダイレクト](https://direct.smbc.co.jp/aib/aibgsjsw5001.jsp)で口座にログインし、現在の口座残高を取得
– 他行では個人向けのAPIが公開されていたりする([個人で動作を試せる銀行系オープンAPIまとめ](https://qiita.com/Puerto/items/c80ecfdd82f070ed2063)等参照)が、三井住友銀行では現在法人向けしかないようす
– MoneyForwardやZaim等のFinTechサービスのAPIを使って取得することはできるかもしれませんが、それらのサービスを日常的には利用していないため、調べていません
– 三井住友銀行のLINE公式アカウントに友だち登録してID連携すると、チャット形式で残高が取得できます。この記事ではよりプログラマブルに取得したい場合を想定しています。たとえば「オレオレ家計簿APIみたいなものをつくりたい」や「残高が一定金額以上(以下)になったら通知させたい」といった応用ができます

# 使用するもの

元記事を表示

Puppeteerなら、Google App Engine Node.jsでスクレイピングしてスプレッドシート(GAS経由)にデータを蓄積するのが無料だよ!

# 以下の記事の概要です。
– 日経225オプションのデータを入手したい。(理由は、分析して儲けるため)
– 私が契約している証券会社は、Javascriptでデータを取得するタイプのサイトなので、Headless Chromeの利用が必須。
– これまでの経験で、Google App Engine(python)は使えるが、それ以外はハードル高い。
– Cloud Runに手を出そうとしたが、ちょっとハードルが高かった。
– Google App Engineだと、Javascriptでデータ取得するタイプのサイトにスクレイピングするのは、無理。
– と思っていたら、Puppeteerなるツールがあって、それを使えば、Google App Engineで運用できると最近知った。
– てことで、Puppeteerでアプリを作って、Google App Engine Node.js(GAE)で運用しようということになった。
– GAEなら、cronで定期実行可能なので、定期的にデータを取得できる。
– 定期的にデータが取得できるなら、Googleスプレッドシートへ書き込んでおけば、後から

元記事を表示

完全にクラウドで完結する無料の Web 開発環境 2020 年春

# 目的

2020 年春時点での、ぼくのかんがえたさいきょうのうぇぶかいはつかんきょうを作ります。完全にクラウドで完結する Web 開発環境を無料で構築します。ここで言う「完全にクラウドで完結する」とは、環境をセットアップしてコードを書き、テストをして本番環境にデプロイするまでの全てをブラウザだけで完結することを指します。**ローカルのコマンドラインツールやローカルで動く IDE などは一切使わない**というのがポイントです。

つまり、Windows、Linux、Mac など OS の依存がないだけでなく、ブラウザが動く環境さえあれば良いので、iPad や Android タブレット、果てはネカフェの PC でもそのままに適用することが出来ます。また全ての環境がクラウド側にあるという事は、作業中の状態なども全てクラウド側にあるという事です。これは**スタバでドヤるどころではない究極のノマド環境**です。**ネットがあってブラウザがあれば、いつでもどこでも開発が出来ます**。

> **本当に無料?**
> 開発環境までは無料ですが、本番環境で一部課金が必要になる場合があります。20

元記事を表示

[Visual Studio Code] [MacOS] .nvmrcで指定したバージョンに自動で切り替えてプロジェクトをスタートする

複数の Node.js プロジェクトに参加していると、利用すべき Node のバージョンがプロジェクト毎に異なる場合があって、毎回手動で切り替えるのは大変面倒なので自動化します。

## 動作確認環境

– MacOS
– Visual Studio Code

にて動作を確認しております。Mac かつ VSCode で開発をしていて、ビルドなども VSCode 上のターミナルで行なっている方は参考になると思います。

## ロードマップ
1. nvmのインストール
2. Visual Studio Code のターミナルをzshに設定する
3. .zshrc を作成、または編集する
4. 自動バージョン切り替えを実行したいプロジェクトで .nvmrc を作成する

## 1.nvmのインストール

日本語の参考記事がたくさんありますのでそちらを参照してください。

`nvm use <バージョン>`

コマンドでいくつかの node バージョンを切り替えられるようになればOKです。

## 2.Visual Studio Code のターミナルをzshに設定する

まずは現在の VS

元記事を表示

MacにHomebrew経由でnodenvを導入する(+PHPStorm対策)

 以前`ndenv`を使っていたのですが、気づいたら`deprecated`になっていたので転職時に新しい端末になったのを機に`nodenv`へ移行しました。`anyenv`使って入れるのがステップ数多くてだるいなと思っていたのですが、`homebrew`であれば割とサクッと入れられそうだったので今回はこちらで導入してみるので、備忘録として残しておきます。

https://github.com/nodenv/nodenv

# Homebrewの導入

導入済み前提で進めるので、導入方法については割愛します。

# 既存のNode.jsまたはNode.jsバージョン管理の削除

各々の環境で異なっている所だと思うので適時環境にあった方法にて対応ください。Macなら大体当該ディレクトリを消せば済むと思います。

# nodenvのインストール

“`terminal
brew install nodenv
“`

まぁまぁ時間がかかると思うので、のんびり待ちます。

# 初期化コマンドをシェルプロファイルに追記

`eval “$(nodenv init -)”`を追記します。最近

元記事を表示

2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.2)

![th.jpeg](https://www.bing.com/th?id=OIP.yovZnkelJ4W3sSoRk-oQtwHaD4&pid=Api&rs=1)

# この記事について

本記事は、2020年3月6日 (米国時間) にて、Azure Cosmos DB に新しく Free Tier (無償利用枠) が登場したことに伴い、改めて Azure Cosmos DB を色々と触っていく試みの 4 回目です。
今回も、[前回記事][PrevLink1] 同様、 **Microsoft Azure Cosmos JavaScript SDK** について見ていきたいと思います。

– [2020年から始めるAzure Cosmos DB – JavaScript SDK (SQL API)を見てみる (Part.1)][PrevLink1]

# 対象読者

– Azure Cosmos DB について学習したい方
– Node.js で Azure Cosmos DB への CRUD 操作を行いたい方
– Microsoft Azure Cosmos JavaScript

元記事を表示

【Node】dotenvで環境変数を設定する

## 概要

– Nodeでプログラムを実行する時に環境(dev/stag/prodなど)ごとに値が異なる部分はコードを修正せずに実行するため環境変数として埋め込むことがよくあると思います
– セットする環境変数が1つ2つであればコマンド実行時に設定すればよいですが規模が大きくなってきたらファイルでまとめて定義したくなるでしょう
– そんな時は[dotenv](https://github.com/motdotla/dotenv)を使うと便利です
– dotenvを使うと`.env`ファイルに定義された値を環境変数として使うことができます
– また、システムの環境変数として値が設定されていればそちらを優先して使うということもできます
– なので、開発時はローカルで`.env`を配置し、本番ではホスティングサービスの機能で環境変数として設定するといった使い方をすることでリポジトリ内のファイルを変更せずに実行することができます

## Nodeスクリプトの実行時にdotenvを使う場合

– シンプルな形でいうと`index.js`があって`node index.j

元記事を表示

初心者がElectron(NW.js)を始めてみて分かったことまとめ

#目次
1. [はじめに](#a1)
2. [個人的にHTA(WSH?)とNW.jsはオススメしません](#a2)
3. [electron開発の流れ](#a3)
1. [プロジェクトフォルダ(名前は何でもOK:ここではmoge)の準備](#a31)
2. [中身を編集する](#a32)
3. [moge/package.jsonを編集する](#a33)
4. [electronとelectron-builderのインストール](#a34)
5. [ビルド](#a35)
4. [electron-builderでビルドしようとすると`このシステムではスクリプトの実行が無効になっているため、~~~`というエラーが出るとき](#a4)
5. [1つのプロジェクトを再ビルドしたいとき](#a5)
6. [おわりに](#a6)


#はじめに

突然ですが、絵を描く用の画像資料が10GBを超えてしまいました

元記事を表示

Node.js: printf風の文字列フォーマットをする方法

Node.jsでprintf風の文字列フォーマットをするには、`util.format`関数を使うと良い。

“`javascript
const {format} = require(‘util’)
const message = format(‘値は %s のうちのどれかにしてください’, [1, 2, 3])
console.log(message)
//=> 値は [ 1, 2, 3 ] のうちのどれかにしてください
“`

公式ドキュメント: [Util | Node.js v13.11.0 Documentation](https://nodejs.org/api/util.html#util_util_format_format_args)

元記事を表示

cheerio-httpcli – Node.js用WEBスクレイピングモジュールについて

下記2点で情報入手
①Webサイト
[cheerio-httpcli – Node.js用WEBスクレイピングモジュール](https://www.npmjs.com/package/cheerio-httpcli)
②書籍(P53~P67)
[Webクローラー/ネットエージェント開発テクニック](https://www.socym.co.jp/book/993)

元記事を表示

lockファイルがコンフリクトしたときの対処法

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪ ---- ------------------- ↓ 余談はここから ↓------------------- lockファイルでインストールを制御ってのは、 割と理想論だと思っている。 まぁ、それはいいとして、 lockファイルをコミットすると、 ほぼ間違いなくコンフリクトする。 そんなときの対処法を残しておこう。 ---- ------------------- ↓ 本題はここから ↓------------------- ## composer.lock コンフリクトを適当に解消して以下のコマンドを打つ ``` $ composer update --lock ``` ## package-lock.json コンフリクトした状態のまま以下のコマンドを打つ ``` $ npm install ```

元記事を表示

async/await スリープ関数

“`javascript
// スリープ
const sleep = delay => new Promise(resolve => setTimeout(resolve, delay));

(async() => {
// 5秒待機
await sleep(5000);
})();
“`

元記事を表示

Windowsのnode.jsでCannot find module が出た場合の対処

個人メモ用です。
ejsをグローバルインストール。node.jsで利用すると『Cannot find module』のエラーが発生しました。
下記の記事通りで正常に動作するようになりました。
[Windowsのnode.jsでCannot find module が出た – Qiita](https://qiita.com/takiru/items/391817ea6c62837ace5a)

元記事を表示

GlitchでPuppeteerを使う際の注意(–no-sandbox)

– [Glitch](https://glitch.com/):Webサイト・APIなどをデプロイできるサービス
– [Puppeteer](https://github.com/puppeteer/puppeteer):ヘッドレスブラウザを立ち上げてスクレイピングなどに使えるNodeライブラリ。GoogleのChrome DevToolsチームが開発してる

ローカルのNodeで開発したPuppeteer利用APIをGlitchにデプロイして起きたエラーの解消メモ

# コード(失敗時)
一般的な以下のような書き方で実行すると…

“`javascript
const puppeteer = require(‘puppeteer’)

(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(‘https://example.com’)
await page.screenshot({path: ‘exampl

元記事を表示

ScaffoldHubってすごいのでは?

## はじめに
最近のWebアプリを作るために様々な技術が登場しています。
結局どれで作るのが良いのだろうとふと疑問に思った時、思わず目に入ってきたサイトを見つけました。それがScaffoldHubでした。
より多くの人にScaffoldHubを知ってもらいたいと思い
(実は既に知っている人大多数説あり)、恥ずかしながら記事の初投稿を決意しました。

この記事はScaffoldHubの公式サイトに書いてあることを記載しているだけなので、詳しくは以下のURLの公式サイトや公式ブログを参照してください。
[https://scaffoldhub.io/](https://scaffoldhub.io/)

## ScaffoldHubとは
ScaffoldHubとは、JavaScriptで書かれたWebアプリのコード自動生成サービスです。選べるものとして、フロントエンドには御三家(React, Vue, Angular)、バックエンドはNodeJSのみ、DBにはSQL, MongoDB, Firebase Firestoreが選べるようです。Webアプリ生成した後は、生成されたソースを

元記事を表示

OTHERカテゴリの最新記事