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

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

【webpack-dev-server】Cannot find module ‘webpack-cli/bin/config-yargs’【webpack-cli4系】

##記事の対象者

webpack-cli 4.xx.xx系をnpm installして、
Error: Cannot find module ‘webpack-cli/bin/config-yargs’と出力されて、どうしようもない方

#結論

“`
webpack-cli serve –mode development
“`

具体的には、package.json > scriptsにnpm run xxx として使う。
[Error: Cannot find module ‘webpack-cli/bin/config-yargs’#2029](https://github.com/webpack/webpack-dev-server/issues/2029#issuecomment-707034614)

[webpack-cli serve -ライブリロードをリリースすることでwebpackを使用します。](https://github.com/webpack/webpack-cli)

###環境

“`console
node –version
v12.18.

元記事を表示

Electron パッケージ化する時にハマったこと。Cannot find module ‘…’

# ハマった内容
ローカルでは正常動作するのに、パッケージ化して作成した実行ファイルだと下記エラーがでてしまう。
`Error: Cannot find module ‘…’ `

# 解決方法
“`
作成中アプリルート/
 ├ node_modules/
 ├ src/
 │ ├ index.html
 │ ├ index.css
 │ ├ main.js
 │ ├ package-lock.json
 │ └ package.json
 ├ package-lock.json
 └ package.json
“`
自分が作成していたアプリは上記のようなディレクトリ構成で、作成中アプリのルートディレクトリで必要なNodeモジュールを `npm install xxx`でインストールしていた。

それを /src(ソースパス)と同じディレクトリ内で必要なNodeモジュールをインストールすることでエラーがでなくなった!!!

参考リンクの回答では、下記のようにNodeモジュールのインストールする先を変えているみたい。
>

作成中アプリのルートディレクトリ
元記事を表示

LINE Developerの管理画面の「検証」ボタンからの接続確認を成功させる

## 管理画面の「検証」ボタンの場所

https://developers.line.biz/console/channel/1654463371/messaging-api

この先のページの

[![Image from Gyazo](https://i.gyazo.com/a59ac6c515a8511999e29b39b3042ac2.jpg)](https://gyazo.com/a59ac6c515a8511999e29b39b3042ac2)

これですね

## 今までは成功したり、しなかったり…

今までのコードではこんな感じに接続確認のときの通信を判断していました。
(一部抜粋)

“`js
app.post(‘/webhook’, line.middleware(config), (req, res) => {
console.log(req.body.events);

//ここのif分はdeveloper consoleの”接続確認”用なので削除して問題ないです。
if(req.body.events[0].replyToken =

元記事を表示

【Node.js 】Node.js と npm をインストールする(Windows)

とあるツールの導入マニュアルを作った際にインストール方法をまとめたので、せっかくだし Qiita 記事に上げさせていただきます。
まぁ、既に色々な方が書いてらっしゃるで需要があるかは謎ですが・・・

でも、ひとつだけ、重要なことを書いておきます。

Windows 版の Node.js をインストールすると、
**npm も一緒にインストールされます。**

なので、npm を別でインストールする必要はありません。
マニュアルを作る上で、ひとつ工程が減ります。
ユーザもよくわからない手順がひとつ減ります。

大事なことなのでもう1回言います。

Windows 版の Node.js をインストールすると、
**npm も一緒にインストールされます。**

それでは、Windows 版 Node.js のインストール手順を説明していきましょう!

# node.js をインストールする

Windows に Node.js をインストールするには、以下のサイトから Node.js をダウンロードしてインストールを行います。
https://nodejs.org/en/

![160456

元記事を表示

sequelizeのupsertの挙動を説明させて頂きます

# Sequelize使ってますか?
この記事ではsequelizeのほんの1メソッドについて説明するので、sequelizeなんて名前も聞いたことないね。って方はおそらく、何の役にも立たない情報だと思います。そういう方はYoutubeでジャルジャルを見てください。めちゃくちゃ面白いですよ。

私のSequelize歴は浅く半年程度です。過去のプロジェクトからの引き継ぎで使ってるものであまり詳しくは理解していません。スマホアプリを作っていまして、私はバックエンドを担当しています。

# ある日、こんな嫌な問題が起こりました。
アプリを社内リリースして、社長がガンガン使ってる時に「なんか、突然他人のデータが見れるようになって、自分のデータは見れなくなったんだけど。」 思い当たる節がなかったので勘も働かず、QAにバグを再現してもらうことになりました。 色々やってくれて、なぜか原因は分からないが1日半かけて同じバグを発生させてもらいました。

認証にはJWTのアクセストークン(とアクセストークンを更新するためのリフレッシュトークン)を使っているのですが、アクセストークンが他のユーザーのもの

元記事を表示

ブラウザでrequireを使う方法2選

皆さんこんにちは。
[プロフセンド](https://profsend.ga)を開発しているぐみぃです。
皆さん、こんなことを思うことがありますか?

**「ブラウザでもrequireできたらな〜」**なんて。

実は、いろいろな方法で使うことができるのです。
その中から2つの方法を紹介します。

# browserifyを使った場合

このパッケージは、
ブラウザでrequireを使うだけのものです。

まずは、

$ npm i -g browserify
でパッケージをグローバルインストール。
次に任意のJavaScriptファイル(input.js)に
requireしてください。
例えば、jqueryをrequireする場合、

var $ = require(jquery);

という感じになります。
あとは、コマンドラインで

browserify input.js -o output.js

できるようになります。

# webpackを使った場合
webpackは、jsファイルや画像などを
バンドル化(ひとまとめ)にするパッケージです。
僕は

元記事を表示

Railsで発生したAutoprefixer doesn’t support Node v4.8.2. Update it.エラーについて【Docker Rails5 Bootstrap】

# はじめに
DockerでRails開発を行っていたら急に下記のエラーが発生して、アプリが開けなくなった。
![6f7d96c8994be656c8439daf32b138aa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556037/8721fbf2-4821-83b8-6cc3-da3b98349147.png)

まず、エラー文を見てみると「Autoprefixer doesn’t support Node v4.8.2. Update it.」と書かれており、翻訳すると「AutoprefixerがNode v4.8.2に対応していません。アップデートしてください。」とのこと。

Node.jsのバージョンを下記コマンドを実行して確認してみると、エラー文のとおりv4.8.2らしい。

“`sh
docker-compose run app nodejs -v
v4.8.2
“`

# 原因
調べているとBootstrapが原因であることがわかった。Bootstrapのソースコードでは、ベン

元記事を表示

JSON Serverで静的ファイル(画像, CSV等)を配信する方法

# JSON Serverで静的ファイルを配信する方法

## はじめに
JSON ServerでCSVファイルや画像ファイルを配信しようとして、ちょっと苦戦したのでまとめておく。
JSON Serverではpublicディレクトリに配置したものを配信することができるが、
デフォルトではルートディレクトリに存在するpublicディレクトリを参照してしまうため、
ルートディレクトリ以外にpublicディレクトリを配置したい場合、これを変更する必要がある。

## 静的ファイルを配置するデフォルトディレクトリを変更する方法
JSON Serverをモジュールとして使用し、
以下のように“`jsonServer.defaults()“`のオプションを指定することで、
静的ファイルのデフォルトディレクトリを変更することができる。
JSON Serverをモジュールとして使用する方法については[過去記事を参考](https://qiita.com/daiti0113/items/576805676c4094b5170c)にしてほしい。

“`js:server.js
server.use(

元記事を表示

WSL、Zsh、VSCode、Docker、NodeJS セットアップまとめ in 2020

# はじめに
新しいSurfaceをもらったので、せっかくだからWSLを試したいと思います。
まとめだけなので、調べる手間を省きたい方向けです。

# WSL、WSL2のインストール

Docker Desktop WSL 2 backendを使うためにWSL2が必要なので、最初からWSL2にアップグレードした方がいいと思います。

[公式マニュアル(日本語)](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)

すでにWSL1のディストリビューションを持っている方は[同じドキュメントでアップグレード方法も記載されています](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#set-your-distribution-version-to-wsl-1-or-wsl-2)。

# Zsh
Linux上の手順と同じ。
WSLを開き、ZSHをインストールします。
(PowerShellなどでwslを入力すれば開きます)

“`bash
sudo apt

元記事を表示

npm 最新版 インストール 方法

最新のnpmを簡単にインストールする方法伝授してゆく!!!
—-

n packageとかいうのを使う!

“`
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
“`

次にキャッシュをクリアしてから、n packageを導入する

“`
sudo npm cache clean
sudo npm install n -g
“`

最新版(安定してるverとるよー)

“`
sudo n stable
パス通す
sudo ln -sf /usr/local/bin/node /usr/bin/node
“`

これからはn packageで管理するための最初に入れたnodeは使わないから消しておく!

“`
sudo apt-get purge -y nodejs npm
“`

バージョン確認

“`
npm-v
node-v
“`

このサイトにあるNode.jsのversionとnpmのバージョンが”Fermium”のやつになってれば成功!
https://

元記事を表示

JavaScript 特定桁の0と1で表すことができる全ての組み合わせを求める関数

# やりたいこと
**例:** 引数1に`3`を渡すと3ビットで表せれるすべての組み合わせを出力する。
たまに使用するので、個人的なメモ(誰かの役に立つと嬉しい)

出力例

“`
[
[ ‘0’, ‘0’, ‘0’ ],
[ ‘0’, ‘0’, ‘1’ ],
[ ‘0’, ‘1’, ‘0’ ],
[ ‘0’, ‘1’, ‘1’ ],
[ ‘1’, ‘0’, ‘0’ ],
[ ‘1’, ‘0’, ‘1’ ],
[ ‘1’, ‘1’, ‘0’ ],
[ ‘1’, ‘1’, ‘1’ ]
]
“`

# コード

“`js:
const getAllBit = (len) => {
//すべての組み合わせの個数
const end = Math.pow(2, len) – 1

let result = []
for (let i = 0; i <= end; i++) { //toStringの引数に2を渡すことで2進数表記にする //len分だけ0うめ const bit = i.toString(2).pa

元記事を表示

MarkdownをGitHubに上げるだけでブログを公開できる仕組みをサクッと作ってみた

世の中には便利なCMSプロダクトがたくさんありますが、ぶっちゃけエンジニアだったらWeb上のフォームでコンテンツを入力するより、ローカルでMarkdownを作ってサクッとGitHubにPushするだけでブログ公開できたほうが楽だなーと思ったので作ってみました。

# できるようになること
下記のようなインデックスページとブログページをMarkdownを作るだけで生成できるようになります。

![画面収録 2020-10-17 12.48.55.mov.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83424/7502f3dd-00f9-b064-cd6a-c83ff4dbc280.gif)

ブログ公開の手順は下記の通りでとても簡単です。

1. Markdownでブログを書く
2. インデックスページを自動生成する
3. GitHubにPushして自動デプロイ

# 実装
それでは実装していきます。

## 主要パッケージのバージョン

この記事を書いている時点の主要パッケージのバージョンは下記の通り

元記事を表示

Azure FunctionsのNodeでSQL Serverから値を取得したメモ

## 概要

AzureのFunctionsでNodeを利用したSQL Serverへの接続をしたメモ。
async awaitを使ってConnectionをとれるようにした。
ORMapperを自前で作ってみた。
自動でやってくれるライブラリも探せばありそうだなー。

[この時点のソース](https://github.com/hibohiboo/develop/tree/bce44745ffd2071736cc5308c94b23e413a4471d/tutorial/lesson/ms-functions/ms-functions-connect-samples)

## ソース

“`models/db.ts
import {Connection,Request, TYPES } from ‘tedious’

let connectionInstance = null;
export const getConnection = () => new Promise(async (resolve, reject)=>{
if(connectionI

元記事を表示

AWS EC2でターミナルを落としてもアプリが実行し続けるように設定する(デーモン化手順)

# はじめに

AWS EC2にて、Node.jsを使って自作したWebアプリケーションをデプロイすることは成功したのですが、
ターミナルを落とす(切断する)と、そのアプリケーションが稼働停止します。

ターミナルを落としても稼働し続けられるようには『デーモン化』という処理を行う必要があるようです。

そこで、私が行ったEC2におけるデーモン化処理について書いていきます。

# この記事でわかること

– Node.js + EC2でのデーモン化
– foreverライブラリの導入方法
– foreverライブラリの使い方(start, stop, list)

# 実行環境
– AWS EC2 (Amazon Linux2 AMI)
– Apache 2.4.46
– Node.js 12.19.0
– forever v3.0.2

# 解決方法

## foreverライブラリのインストール

下記コマンドにてインストールするとともに、
正常にインストールされたかどうかを確認します。

“`
$ npm install -g forever

$ forever –vers

元記事を表示

LINEBotに尋ねたら温度センサーで室温を計ってみた

# まずは動かしてみた
以前、obnizと温度センサ、LEDを組み合わせてみたのですが、今度はLINEBotと組み合わせてみました。
↓が以前のQiitaの記事
https://qiita.com/heihei15408697/items/a1abef804a5522e73628

### LINE側
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/25d4389f-9faf-9cf6-9830-fefeed1e1f19.png)

### obniz側
![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/073fa639-cc4f-be4d-0964-2d36659ea8fb.jpeg)

# 実現方法
### 使用したもの
・obniz Board 1Y
・高精度IC温度センサー LM60BIZ
・マイコン内蔵RGB 8mmLED PL9823-F8

###

元記事を表示

他人との距離大丈夫?近かったら通知がくるよ!

# まずは動かしてみた
超音波距離センサーから2メートル以内であれば、obniz、LINEともに通知がいくようにしてみました。

## obniz側
![iOS の画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/e136f153-d72a-2538-fd5f-45ebfaad8194.jpeg)

## LINE側
![iOS の画像 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/f2453777-0771-bedb-f7ef-c6ad8391ea52.jpeg)

# 実現方法
### 使用したもの
・obniz Board 1Y
・超音波距離センサー HC-SR04

### 参考にしたサイト
下記のサイトを参考にしました。

郵便物が届いたらLINEにお知らせ

###ソース
“`javascript
c

元記事を表示

強いアトムのチャットルーム

### プロジェクトの概要
?項目は全スタックtypescriptを用いた
全typescript
?プロジェクトを開発し、以後の機能が超のんびりするためだ。もちろん、私自身もtypescriptが好きです。
?現在チャットルームが完全なチャット機能を備え、今後多く酷鍱の機能が、続々と開発の好きな友人のスターに私を励ましてみましょう!
### プロジェクトインターフェース
![v6_pc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849336/fab0b849-2f70-0e3b-871a-280e63e513fb.png)
![v6_m1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849336/bb44c1ee-2bd9-d826-5d83-b607501b3990.png)
### プロジェクトデータベース設計
![database.png](https://qiita-image-store.s3.ap-n

元記事を表示

2020.11.03~ Node.jsで調べたこと

Node.js v12.18.0

# 2020.11.03(火)
## 相対パスを絶対パスに変換
`path.resolve()`を使う

> The path.resolve() method resolves a sequence of paths or path segments into an absolute path.
> [Path | Node.js v12.19.0 Documentation](https://nodejs.org/docs/latest-v12.x/api/path.html#path_path_resolve_paths)

> “`javascript
const path = require(‘path’);
let absolutePath = path.resolve(‘./test.txt’);
// => /Users/…/test.txt (絶対パス)
“`
> [[NodeJS]相対パスを絶対パスに変換する方法 | YongJin Kim’s Blog](https://yongjinkim.com/nodejs%E7%

元記事を表示

Node.jsについて簡単に解説(学習まとめ)

##はじめに

今更ながら、今回は「Node.js」について解説していこうと思います。
それでは早速、お付き合いのほど、よろしくお願いいたします。

##本文

「Node.js」とは、サーバーサイドでJavaScriptを実行する環境(’エンジン’とでもいうべきもの)で、内部にChromeのJavaScript実行エンジンである「V8」を持ちます。
ApacheやNginx上で動作します。(※Node.js単体でも動作します)(※Node.jsでWebサーバーを作ることもできます)。
「ノンブロックIO」と「イベントループ」という二つの仕組みで大量のアクセスを捌くことができます。したがってリアルタイムで高速に動作します。
「ノンブロックIO」とは、ハードディスク(≒データベース)などへのアクセスでブロック(処理が完了するまでの待機動作)を発生させないということです。したがって、データの取り扱いは非同期に行われます。
「イベントループ」とは、外部からのアクセスをイベントとみなして、そのイベントを順次処理していく(発生順にキューに格納してから、これを順番に取り出して処理していきます)。

元記事を表示

ERESOLVE unable to resolve dependency treeの解決方法

### 背景

Dockerのnodeコンテナ内で、create-react-appでReactプロジェクトを作成し、
その後にmaterial-uiをインストールしようとしたときに、発生したエラーでした。

※調べてみた感じ、npm installで、インストール元のパッケージのバージョンが最新(latest)で、
インストールするパッケージの最新バージョンが同等(peer)でなかったときに発生するエラーのようでした。

## 結論

そのライブラリを**インストールしたい**場合は、npm installのあとに、**–save –legacy-peer-deps**を追加してあげましょう。
もしくは、インストール元のプロジェクトの**ダウングレード**を検討しましょう。。

## 経緯

“`bash
# material-uiをインストールしようとしたら。。
npm install @material-ui/core
“`

“`bash
# このようなエラーが発生。。
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable t

元記事を表示

OTHERカテゴリの最新記事