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

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

Node.jsを用いて、ORMにSequelize, DBはRDS(MySQL)という構成でApollo Serverを用いて、GraphQL Serverを構成する【勉強メモ】

## 最初に
これはNode.js環境で, ORMにはSequelize, DBにはMySQLを使った構成で、Apollo Serverを用いてGraphQLサーバを構築してみた際の備忘録となります。

と言っても自身でイチから、これらの構成を構築していったわけではなく、下記のチュートリアルを参照しながらの勉強メモとなります。
(ちょうど同じ構成での例を探していたところ、丁寧に書かれていた下記のドキュメントを見つけました。ありがたい)

[How To Set Up a GraphQL Server in Node.js with Apollo Server and Sequelize](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-graphql-server-in-node-js-with-apollo-server-and-sequelize)

ちなみにこのドキュメントの中では、sqlite3を用いているので、そこはこちらでMySQLに置き換えて実践しています。
また細かなところで適宜アレンジを

元記事を表示

Mac Nodebrewを用いてNode.jsをインストールした時にエラーが出た話

# 目的

– Nodebrewを用いたNode.jsインストール時に出たエラーを解決した話をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| OS | macOS Catalina(10.15.3) ||
| ハードウェア | MacBook Air (11-inch ,2012) ||
| プロセッサ | 1.7 GHz デュアルコアIntel Core i5 ||
| メモリ | 8 GB 1600 MHz DDR3 ||
| グラフィックス | Intel HD Graphics 4000 1536 MB ||

# エラー内容

– Nodebrewを使用してNode.jsの最新の安定バージョンをインストールしようとした時に下記のエラーが発生した。
– 実行コマンドをとエラー内容を下記に記載する。

“`terminal
$ nodebrew install-binary stable
Fetching: https://nodejs.org/dist/v12.16.

元記事を表示

「福井県オープンデータ ごみ収集日一覧CSVをJSONに変換するツール」README

※この記事は、私がGitHubに公開しているnode.js製ツール「[福井県オープンデータ ごみ収集日一覧CSVをJSONに変換するツール](https://github.com/8amjp/fukui-opendata-gomisyusyubi-json)」のREADMEを転載したものです。
解説は「[恋に落ちるコード.js](https://github.com/8novels/jk-meets-js)」の絵子と樹里です。

—-

# 福井県オープンデータ ごみ収集日一覧CSVをJSONに変換するツール

「[福井県オープンデータライブラリ](https://www.pref.fukui.lg.jp/gyosei/jouhoukoukai/opendata/index.html)」で公開されている、県内17市町の「[ごみ収集日一覧](https://www.pref.fukui.lg.jp/doc/toukei-jouhou/opendata/list_ct_gomisyusyubi.html)」データの形式を、CSV(Shift-JIS)からJSONに変換します。

##

元記事を表示

npmって?

# npmって?
node package manager

Node.jsで使うパッケージを管理するために使う
Nodeをインストールすると一緒にインストールされる

# npmのインストール

僕はMacOSにnodebrewでインストールした

nodebrewはNode.jsのバージョン管理システム
Homebrewでインストールする

“`
$ brew install nodebrew
“`
“`
$ echo “export PATH=$HOME/.nodebrew/current/bin:$PATH” >> ~/.bash_profile
“`
“`
$ source ~/.bash_profile
“`
“`
$ which nodebrew
“`
これでnodebrewのパスが表示されればOK

この後,nodeをインストールして,その後npmをインストールする

# npmコマンド

インストールディレクトリを確認
“`
npm root
“`

元記事を表示

Rails6でアプリ起動時にWebpacker configuration file not foundエラーが発生した時の対処方法

#執筆背景
scaffoldを使って簡単なアプリを作ろうと以下のコマンドを打ち込むと、Webpackerがインストールされていないというエラーが発生したため、記述しておこうと思う。

“`
$ rails new app_name
$ cd app
$ rails g scaffold post content:text
$ rails s

(中略)
Webpacker configuration file not found /Users/ユーザ名/app_name/config/webpacker.yml.
Please run rails webpacker:install
Error: No such file or directory
@ rb_sysopen – /Users/ユーザ名/app_name/config/webpacker.yml
(RuntimeError)
“`

ちなみに、このときのrubyのバージョンは2.7.0、railsのバージョンは、6.0.2.2です。

#結論
このエラーは、webpackerがインストールされていない場合に起こる

元記事を表示

Why should you hire a dedicated node.js developer?

![hire-Node-js-developer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280360/93001670-d8e0-0d86-44ab-cd7e799da748.png)

Every business needs software to run their business in a world that is rapidly digitizing. More people prefer online monetary transactions nowadays than ever before, so business organizations also have to adapt accordingly. The technology used to build software usually keeps on evolving to make the systems more efficient. One such technology that has had a s

元記事を表示

Mac Node.jsのバージョン有効化する手順でvX.X.X is not installedと出力された話

# 目的

– Node.jsをHomebrewを使用してインストール後にバージョンを有効化する際に「vX.X.X is not installed」と出力され、それを解決した話をまとめる。

# 実施環境

– ハードウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| OS | macOS Catalina(10.15.3) ||
| ハードウェア | MacBook Air (11-inch ,2012) ||
| プロセッサ | 1.7 GHz デュアルコアIntel Core i5 ||
| メモリ | 8 GB 1600 MHz DDR3 ||
| グラフィックス | Intel HD Graphics 4000 1536 MB ||

# エラー内容

– インストール後に下記コマンドを実行してバージョンの有効化を行った。(インストールは正常に完了、X.X.Xはバージョン名)

“`terminal
$ nodebrew install-binary stable
$ nodebrew use vX.X.

元記事を表示

Webサイトを運営しているミニマリストがインストールしている最低限必要なアプリ達

#Overview

シンプルであることに越したことはない。
シンプルなら環境の移行や再構築も苦にならない。
シンプルなら必然的にミスする確率も低減する。
今回は環境構築メモの役割も含めて、Webサイト運営に使用しているアプリを公開しておきます。

#Target reader

– シンプルかつ低コスト&高い可用性を持つWebアプリを運用したい方。
– Webサイトを作る上で最低限何を勉強しないといけないか知りたい方。

#Prerequisite

– OSはWindows
– Macは1社に依存することからリスクヘッジのためWindows
– ただし、LinuxコマンドがメジャーなのでWindowsで実行する場合にググらないといけないことがある。
(WindowsのLinux環境であるWSL2が一般的になれば格差は是正されるかもしれない)
– 言語はNode.js
– フロントエンドがJavaScript一択なので、バックエンドも同一言語ならパッケージも共有でき効率的。
– クラウドベンダーのFaaS(Functions)をみた場合、N

元記事を表示

Qiitaに投稿した記事をいい感じにExportする君を作った

## 結論ファースト
– Qiitaに投稿した記事をいい感じにExportする君を作った
– マークダウンと画像をいい感じにダウンロードできる
– GitHub: https://github.com/yu-suke-dev/export-qiita
スクリーンショット 2020-03-27 11.42.17.png

## 作ろうと思ったきっかけ
– 最近Qiitaがいろいろと話題なので、自分の記事をExportしたいなと思った
– 朝起きて、突如やろう!となった(出勤前までに)

## 実現したかった”いい感じ”とは
– 記事はマークダウンを取得すること
– 記事内に、Qiitaにアップロードした画像もダウンロードしてくること
– 記事ごとにディレクトリを分けて写真と記事のセットをわかりやすくすること

元記事を表示

chromeで401レスポンスが返ってきたときの不具合

# 背景

https://www.nnn.ed.nico/questions/14833
n予備校の教材の通りに実装を進めていたところ、このリンクと同じ状況に遭遇

# 問題

chromeに限り、以下のコードで表示されるはずのログアウトしましたという文とリンクが表示されない。

“`javascript
function handleLogout(req, res) {
res.writeHead(401, {
‘Content-Type’: ‘text/html; charset=utf-8’
});

res.end(‘‘ +

ログアウトしました

‘ +
ログイン‘ +
‘‘
);
}
“`

# 原因
chromeのバグ
https://bugs.chromium.org/p/chromium/issues/detail?id=992639

元記事を表示

npm upTypeError [ERR_INVALID_ARG_TYPE]

# 状況
以下のようなメッセージが出たので実行してみました。

“`information.sh

│ New patch version of npm available! 6.14.1 → 6.14.4 │
│ Changelog: https://github.com/npm/cli/releases/tag/v6.14.4 │
│ Run npm install -g npm to update! |

“`

“`update.sh

$ Run npm install -g npm

“`

updateが完了してgulpを実行しようとしたところ
変更していないタスクにて以下のエラーが発生。

“`error.sh

TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-li

元記事を表示

jestでモックしてみたメモ

レガシーコードのテストをjestに移行していた時に、
jestだとどうやってモックしたり、追跡したりするんだ?となったのでその時のメモ

# 最初に
相当アホなところでハマったのだが、jest はnamespaceをそのまま読み込むため以下のようの読み込まないといけない。

“`typescript
import ‘jest’ // OK

import jest from “jest” // NG

jest.xxxx()
“`

# 特定の関数をモックする
関数にもろもろについてモックの仕方です。

## テスト用のモック関数の作成

“`typescript

const mockFunc = jest.fn().mockImplementation(() => return “mock func”);
console.log(mockFunc()); // mock func
“`
関数自体のモックは jest.fn()に集約されており、単純に何か値を返すのみの関数は mockImplemantionの引数で定義します。
また、mock関数の引数や、どういった値を返した

元記事を表示

Node.jsをインストール(nodebrewでバージョン管理)

**本来の目的:ローカル環境でES6を使用**

node.jsのバージョン管理ツールnodebrewをインストール

※メリット:複数のnode.jsのバージョンを簡単に切り替えられる。

#brewがインストールされているか確認

“`ruby

$ brew -v
“`

“`ruby:【実行結果】インストールされている

Homebrew 2.2.6
Homebrew/homebrew-core (git revision ba38; last commit 2020-02-28)
“`

#nodebrewのインストール

“`ruby

$ brew install nodebrew
“`

“`ruby:【実行結果】
Updating Homebrew…
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
abseil hdf5@1.10 publish
archi

元記事を表示

LINE botを勉強会の受付に導入してみたい! ~connpass APIの紹介~

#導入

 仕事は別に勉強会を開いているのですが、有志による運営のため手が回らないこところが多いです。その中でも受付業務にフォーカスして手助けになるシステムのプロトタイピングを行っています。

[Noodlで受付嬢を創った](https://speakerdeck.com/maepu/noodldeshou-fu-niang-wochuang-tuta)

 私と同じくユーザコミュニティの運営やイベントの開催をされている方に読んでいただいて、少しでも負担が軽くなるシステム例としていただけたら嬉しいです。

 勉強会といえば、IT関連の勉強会支援サービス**connpass**ですね。
と、いうことでconnpassのAPIを利用してLINE botと連携してみようと思いました。
この記事ではconnpass APIの紹介と簡単な使い方を書いています。

#connpass APIについて
 こちらの[connpass API](https://connpass.com/about/api/)からURLと検索クエリ、レスポンスについて解説されています。開催日時や場所だけでなく、サイトのH

元記事を表示

[Node.js] express + nodemon + BrowserSync でゲボ楽コーディング

# はじめに
expressを使ってBrowserSyncを使う記事が少なかったので書きます。
nodemon + BrowserSyncでブラウザノータッチの楽々コーディングを目指そう。
# 方法
1. expres側ファイルをnodemonで監視(3000portで起動)
2. BrowserSync を 4000 番ポートで起動、nodemonに接続

これによりクライアント側のファイルはBrowserSyncでブラウザをリロード
nodemonによるサーバ再起動は、再起動後にBrowserSync に通知してもらえるようにする。
#前提
– node + expressは導入済み
– Nodeの側のポートは3000に指定

# 導入
`browser-sync` のインストール

“`
$ npm install –save-dev browser-sync
“`

インストールが終わってからbrowser-syncのコンフィグファイルを生成

“`
$ npx browser-sync init
“`

`bs-config.js`が作られるので、以下のように一部

元記事を表示

話題のanalyzeコマンドを実装してみた

今、イケてるエンジニア界隈で話題沸騰中の`analyze`コマンドをご存知でしょうか。

こういうやつですね。

スクリーンショット 2020-03-26 9.41.49.png

# Yet another `analyze` command

コレCLIっぽい見た目をしていますが、実はWebブラウザ上[^sobaya007]でしか動作しません。不便ですね。
[^sobaya007]: https://qiita.com/sobaya007

Shellでも使いたい!という声にお答えして、実装してみました!!

コチラです。
[![NPM](https://nodei.co/npm/qiita-analyze.png)](https://nodei.co/npm/qiita-analyze/)

Source

元記事を表示

JavaScriptでちょっと複雑なcliを作るのに便利なEnquirer

# この記事は

[LAPRAS アウトプットリレー](https://daily.lapras.blog/) の…何日目だっけ?3/25の記事です!
こんにちは!LAPRAS エンジニアの @rockymanobi です!

最近Node.jsでCLIを作る機会があり、その時に触ったEnquirerというライブラリが便利だったので、軽く紹介してみようというものです。ツールそのものについて軽くふれつつ、制作過程で出てきた「こんなことしたいけど、どう実現すれば良いんだろう」と試行錯誤して分かった使い方などを共有できればなと思います。

# Enquirerとは

Enquirerは CLIアプリケーションにおける対話的インターフェイスの実装を楽にしてくれるライブラリです。単純なテキスト入力の受付はもちろん、リストからの選択、チェックボックス、パスワード、入力補完、など、様々な入力方式を手軽に組み込むことができます。Node.js製です。JavaScript(TypeScript)万歳!

[公式サイト](https://github.com/enquirer/enquirer)による

元記事を表示

【あと少し】楽天市場のAPIを使って買えるマスクを提案してくれるLINEBotを作ってみた

### はじめに
ProtoOutStudioというイケイケなスクールの「LINE Bot+APIで表現してアウトプット」という課題で製作したものです。

こちらの[1時間でLINE BOTを作るハンズオン](https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d)の記事をベースにLINEBotを作成しました。
最近の新型ウィルスの影響で、ネットショッピングばかりしているのですが、ちょっと楽天市場のトップ画面を見るのに飽きてきたので、(マスクなどの)必要なものを、(売り切ればかりなので)在庫のある商品で、高額になりすぎて買う気がなくなってしまわない(金額の)範囲で、提案してもらえるLINEBotを考えました。
(Amazonは申請が大変そうに見えたのでお見送りしました)

### 概要と作れなかったところ
#### 概要
+ LINEBotにほしいもの、「マスク」と入力したら
1. 楽天市場のキーワード検索から「マスク」を検索
2. 絞り込み検索で「購入可能」
3. 「最安価でソート」
4. 「最低金額

元記事を表示

[備忘録]Macの開発環境構築(anyenv + nodenv + Node.js)

# 構築の流れ
1. Homebrewのインストール
2. Gitのインストール
3. anyenvのインストール
4. nodenvのインストール
5. Node.jsのインストール

# 環境
– macOS Catalina
– シェルは zsh

# Homebrewのインストール

[本家](http://brew.sh/index_ja.html) のスクリプトを実行。

“`
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`

Homebrewのバージョン確認。

“`
% brew -v
“`

# Gitのインストール

Gitがインストールされているか確認する。
使い方が表示されればOK。

“`
% git
“`
### HomebrewでGitをインストール

“`
% brew install git
“`

# anyenvのインストール

HomebrewかGitでanyenvをイン

元記事を表示

VSCode1.43.0では即時関数内でtry-catchを使うとreturnが正しく解釈されない

VSCode(1.43.0と1.43.1で確認)では、以下のコードでconsole.logの部分が「到達できないコード」として判定されてしまいます。

“`JavaScript
const message = (() => {
try {
/* エラーが発生しそうな処理 */
return “success”;
} catch (e) {
return “error:” + e;
}
})();

console.log(“message = ” + message);
“`

しかし、Node.js(12.16.1)で上記のコードを実行すると、console.logはちゃんと実行されます。

“`
message = success
“`

即時関数の中でtry-catchは使うべきではないのでしょうか。
そもそもこういった処理を即時関数化すべきではないのかも知れません。
ただ、VSCode 1.42.1 以前はちゃんとconsole.logが到達可能と判定されていましたし、よく分かり

元記事を表示

OTHERカテゴリの最新記事