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

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

aptでlibssl1.0-devをインストールするとrosが削除された

##概要
もともとrosが入っていたubuntu18.04のPCにnodejsをインストールしたくて、libssl1.0-devが必要と言われたので、以下のコマンドをうったらros関連を大量にremoveされた。

“`
apt install libssl1.0-dev

Start-Date: 2020-08-06 11:19:07
Commandline: apt install libssl1.0-dev
Requested-By: solitude_under_the_blue_sky (1000)
Install: libcurl4-gnutls-dev:amd64 (7.58.0-2ubuntu3.9, automatic),
libssl1.0-dev:amd64 (1.0.2n-1ubuntu5.3)
Remove: ros-melodic-image-proc:amd64 (1.15.0-1bionic.20200530.124945),
ros-melodic-rviz-visual-tools:amd64 (3.8.0-4bionic.20200624.

元記事を表示

Cloud Functions を Node.js 10 移行する

久しぶりに Cloud Functions のコンソール画面を開いたら下記のような警告が来ていました。どうやら Node.js 8 が非推奨になり2021年の3月中旬には全面的にサポートされなくなるとのことなので、Node.js 10 へ移行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292456/55bda261-ff67-2d9f-58d4-2c711d65b39c.png)

https://cloud.google.com/functions/docs/migrating/nodejs-runtimes?hl=ja

## 移行していく

まずは Node.js 10 にバージョンアップするので、Deploy・エミュレーションができるように最新の Firebase CLI をインストールします。

“`
$ npm install -g firebase-tools@latest
“`

次に `functions` > `package.json` で

元記事を表示

【Node.js mysql】mysql接続 データを取り出す

##【ゴール】
mysql接続 データを取り出す

##【開発環境】
■ Mac OS catalina
■ Homebrew 2.4.9
■ mysql Ver 8.0.21

##【実装】

###appを作成
****homebrewのインストールが事前に必要です***
****mysqlのインストールが事前に必要です***
*mysqlのコマンドも合わせて覚えれます

“`mac.terminal
// ディレクトリ作成

$ mkdir js
$ cd js
$ npm init -y
$ npm install express
$ npm install ejs
$ npm isntall mysql
$ touch server.js
$ touch app.ejs

// mysql でDATABASEを作成

$ mysql -u root -p
$ mysql> CREATE DATABASE JS;
$ use JS;
$ CREATE TABLE User (id int auto_incremet, name char(10));
$ INSERT IN

元記事を表示

Node.jsのインストール

#Node.jsのインストール
##環境
OS: Windows10 Pro
Node.js: v12.18.3

##手順
1. [Node.js公式サイト](https://nodejs.org/ja/)へアクセスして推奨版をDL
2. DLしたmsiを実行
3. コマンドプロンプトでバージョン確認

###1.公式サイトへアクセス
[https://nodejs.org/ja/](https://nodejs.org/ja/)へ移動して推奨版を選択します。
![nodejs.org_ja_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684640/358965b4-c09f-41dc-80dd-2000ff550050.png)

###2.DLしたmsiを実行
![msi_bn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684640/7fe2fd2b-07b0-5421-c238-7e8c1ed5605

元記事を表示

プロ野球選手のリアルタイム成績を返すLINE botを作った(LINE bot+heroku)

# 概要

**現役プロ野球931名(2020/8/14現在)のプロフィール&今年度成績を教えてくれるLINE bot**を作ったという話。

# 経緯

自分はプロ野球が好きです。

野球を見てると、自分や相手チームの選手の成績や出身高校が知りたくなる時がありました。
ただ、**気になった選手の情報を欲しいときにすぐに入手するのは意外に難しい**です。

* 選手名鑑の本だと、前年度成績しか載ってない…
* 速報アプリだと、調べたい選手の情報にたどり着くのに時間がかかったり、欲しい情報に対して情報過多だったりする…
* チームと背番号しかわからない選手だと、調べること自体が難しい…

そんな中、1年ほど前に[Bリーグの選手情報を返すLINE Botを作った](https://kta-basket.hatenablog.com/entry/2019/02/08/005551) の記事を拝見しました。

* 普段から使っている**LINEが選手名鑑になる! 本を取り出さなくてもいい!**
* 出てくる情報がシンプルで、**欲しい情報が一目瞭然!**
* **選手名が分からなくても、チーム

元記事を表示

node.jsを使ってみる

node.jsをインストールしてみる。
参考:https://www.sejuku.net/blog/82322
# 1. ダウンロード
– https://nodejs.org/ja/
– https://nodejs.org/dist/v12.18.3/node-v12.18.3.pkg
– node-v12.18.3.pkgを実行してインストール。

実行してみる。

“`
% node –version
v12.18.3
“`

# 2. Hello, world!
“`hello.js
console.log(‘Hello, world!’)
“`

“`
% node hello.js
Hello, world!
“`

と、無事実行できた。
参考:https://qiita.com/loremipsumjp/items/3d32a44fe80c9a2febbe

# 3. npmを使い、expressをインストールしてみる
参考:https://qiita.com/tarotaro1129/items/e02fbb911dc4af412ad0
npmとは、パ

元記事を表示

【Alexa】新機能 hostedスキルで作成する

#はじめに
2020年7月頃よりβ版だった**Alexa-hostedスキル**が正式公開となりました。※なったはず。
ここでは新しく実装されたAlexa-hostedスキルを使ってスキルを作っていきます。

Amazon開発者ポータルを使用するためにAmazonデベロッパーアカウントが必要です。
あらかじめ環境を整えてから読んでください。

#Alexa-hostedスキル以前の方法
Alexa-hostedスキルが正式に公開されるまではAlexaとのインターフェイスは**Alexa**スキル、そのプログラムの実装は**AWS**にて行われていました。

|手段|コンソール|アカウント|
|:–:|:–:|:–:|
|Alexaにスキルを用意する|Amazon開発者ポータル|Amazonデベロッパー|
|Alexaにプログラムを用意する|AWSコンソール|AWSアカウント|

そのため**Amazon開発者ポータル**と**AWSコンソール**を行き来して開発する必要があります。
そして**Amazonデベロッパー**アカウントのほかに**AWSアカウント**も必要になります。

元記事を表示

`npm token create –json`をchild_processで実行しつつ、結果のトークンはコンソールに表示しない方法

`npm token create`をNodeJSのプログラム中から呼びたくて、

execだとプロセスが終わるまで帰ってこないので、対話的なプログラムには向かない

“`javascript:帰ってこない
const exec = child.exec(“npm token create –json”, (err, stdout, stderr) => {
console.info({ err, stdout, stderr })
})
“`

非同期処理を書きたくないのでspawnSyncを使おうとした。

やりたいことは

1. パスワードの入力を求めるメッセージはコンソールに表示したい
2. ユーザーが入力するパスワードはコンソールに表示したくない
3. 最終結果は(秘密のトークンを含むので)コンソールに表示したくない

である。
とりあえず

“`javascript
const child = require(‘child_process’)
const options = {
encoding: “utf-8”,
stdio: “inherit”
}
co

元記事を表示

Node.jsのインストールからReactNative+Expo+Typescript環境を構築しようね(2020/08/13 LTS対応)

#初学者との開発プロジェクト始動!

初学者との開発プロジェクトを始めるにあたって
手順書をざっくり作成したのでここに書き留めます。

##概要
– Node.jsインスト―ル
– Expoインスト―ル
– ReactNative+Typescriptでプロジェクト作成

##バージョン(記事作成時LTS)

| – | Version |
|:———-|————:|
| Node.js | 12.18.3 |
| npm | 6.14.6 |
| expo | 3.24.0 |

##Node.js
①最新Nodeのインストーラをダウンロード
https://nodejs.org/ja/download/releases/

②実行
node.jsがインストールされているのでアプリ実行
→真っ黒の画面が出たらOK(以下でnodeと呼びます)

③確認
nodeにて「node –version」と入力してEnter
→v12.18.3と出力されたらOK

##次にExpo!!
#

元記事を表示

JavaScriptのイベントループを理解する

## イベントループとは?

JavaScriptは**シングルスレッド**です。一度に実行できるタスクは1つだけです。つまり、

– 2つ以上の処理を並行して実行できない
– 2つ以上の関数を同時実行できない

ということになります。

例えば、10秒掛かるタスクを実行すると、他のタスクは10秒間待機しなければなりません。
JavaScriptはデフォルトでブラウザのメインスレッドで実行されるため、UI全体が動かなくなります。

では、**イベントループ**について解説していきます。
まず、V8などのJavaScriptエンジンやブラウザには、下記の画像の様に**コールスタック(Call Stack)**、**ヒープ(Heap)**、**タスクキュー(Task Queue)**、**Web API**と呼ばれる4つのメカニズムを備えています。

![JavaScriptエンジン](https://meetup-jp.toast.com/wp-content/uploads/2019/06/083_01.png)

まずは、このメカニズムを簡単に説明していきます。

### Web A

元記事を表示

【node.js】ルーティング設定ホーム画面表示させる。

##【ゴール】

###node.jsを使用して、対象のviewを表示させる。

##【メリット】
■node.jsの理解度向上
■JavaScriptの理解度向上

##【開発環境】
■ Mac OS catalina
■ Homebrew 2.4.9
■ mysql Ver 8.0.21

##【実装】

###作業環境作成
*nodebrewをPC内にインストールしてください
*npm をPC内にインストールしてください。

“`mac.terminal
$ mkdir js
$ cd js
$ npm init -y
$ npm install express
$ npm install ejs
$ touch server.js
$ touch app.ejs
“`

##ルーティング作成

“`js:server.js

// for using express
const express = require(‘express’);
const app = express();

// for path of view
function views() {
a

元記事を表示

npm token createの結果をjsonで取得する

# TL; DR

`npm token create –json`

# 経緯

記事のタイトルとは関係ないけど、Node.jsのプログラム中からnpmアカウントのAuth Tokenを生成する方法で困ってた。

https://docs.npmjs.com/creating-and-viewing-authentication-tokens

ここにある`npm token create`以外にAPIが見つからないけど、`npm token create`はCLI上でインタラクティブにパスワードの入力を求めてくる。

これについては下記の方法で可能だということがわかった。
意外とお手軽で良かった。

“`javascript:main.js
const child = require(‘child_process’)
child.spawn(“npm”, [“token”, “create”], { stdio: ‘inherit’ })
“`

ということで実行してみたところ、パスワードも問題なく親プロセスから対話的に入力でき、トークンが生成できた。(トークン部分は隠してあ

元記事を表示

npmでローカルにインストールしたコマンドを実行する

コマンドは“`./node_modules/.bin“`に集められています。下記のようにパスを指定して実行してください。

“`
% ./node_modules/.bin/jest
“`

チュートリアルのサンプルコードを実行しようとして、コマンドが存在しないエラーになりました。

“`
% jest my-test –notify –config=config.json
zsh: command not found: jest
“`

元記事を表示

息子の可愛さを普及するために、AWS + LINEでBotを作った話

2020年7月、我が家に長男が誕生。
もう天使。かわいい。CMのオファー来るんじゃないのか?(親バカ)

親族・友人に息子を会わせて、可愛さを自慢やりたかったが、このご時世それも叶わず。。。
我が息子の可愛さを普及したい。どうしよう。

そうだ。我が息子の可愛さを普及するLINE Botを作ろう。

# 1. デモ
最初にご紹介。(かわいい)
![demo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300430/21dbaea6-a7d8-fc69-5869-b1a5cda7fe70.gif)

# 2. 全体構成
![Design.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300430/f004c5e4-e8ef-b69d-a4a6-67f82dac8bb0.png)

2-1. LINEBotからWebHookでAPIGateway→Lambda実行
2-2. メッセージを解析して、返信用のメッセージと画像を

元記事を表示

nodenvを使ってnode環境を作る

# はじめに

ちょっと仕事で AWS Lamdbaを使うことになりそうなので、いまさらながらお勉強。
WSL2のUbuntuに開発環境を作って、試してみようと思います。

## 環境
Windows 10
WSL2
Ubuntu 20.04 LTS

## nodenvをインストールする

git clone で必要なファイルを取得します。

“`bash
git clone git://github.com/nodenv/nodenv.git ~/.nodenv
git clone git://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
“`

nodenvにパスを通します。

“`bash
echo ‘export PATH=”$HOME/.nodenv/bin:$PATH”‘ >> ~/.profile
echo ‘eval “$(nodenv init -)”‘ >> ~/.profile
source ~/.profile
“`

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

インストール可

元記事を表示

スクワットしないとジェイソン・ステイサムに撃たれるLINE bot ~SQUAT or DIE~

Qiitaで「ジェイソン・ステイサム」というタグを密かに育んでいるたわちゃんです。
もちろん、今回も愛しのステイサムたんがテーマ!
ぜひ、最後までご覧ください♪

#今回のステイサム作品
自粛により13キロも太ってしまった私。
空いた時間にスクワットしたいけどヤル気が出ないので、スクワットしないとステイサムに殺●れるLINE botを作りました。
その名も「SQUAT or DIE」です。

#出来たもの

※キャプチャ撮る時LINE botの名前変えるの忘れてた・・・「SQUAT or DIE」です。
[![Image from Gyazo](https://i.gyazo.com/2bcf07dfa0cccbbac697f7564b9205a8.png)](https://gyazo.com/2bcf07dfa0cccbbac697f7564b9205a8)

基本、私からの問いかけには一切無視というドS設定ですが、スクワット表明をすると反応してくれます。

ステイサムたんの命令は絶対・・・!すぐにスクワット開始です。
__ちなみにTシャツに反応した方は、そっとコメントください。_

元記事を表示

【Node.js】Expoプッシュ通知を一斉送信するWebAPI|配列を任意の数に分割をする

# はじめに
現在Expo ReactNativeを使ってネイティブアプリ開発をしています。
Expoを使ってプッシュ通知を送るためにプッシュ通知のTokenを1つ、1つPOSTリクエストを飛ばしてもいいのですが、Expoの仕様では最大100個のTokenをまとめてPOSTできる。そこでN個ずつに配列を分割して二次元配列にして処理する方法を紹介します。

# 例
以下のような長さ75の配列があるとする、それを10分割して余った分は10個未満になっても分割をする。
今回は長さ75の配列を10個づつ分割して二次元配列にする。

## 処理前
スクリーンショット 2020-08-12 午後6.59.47.png

## 処理後
スクリーンショット 2020-08-12 午後7.</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>JavaScript</div>
<div class='tag-cloud-link'>Node.js</div>
<div class='tag-cloud-link'>MySQL</div>
<div class='tag-cloud-link'>WebAPI</div>
<div class='tag-cloud-link'>expo</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/merarli/items/9d427aee9065950a45f7'>元記事を表示</a></div>
<h3 id=TypeScript + Node.jsプロジェクトにESLint + Prettierを導入する手順2020

# TL;DR

https://github.com/notakaos/typescript-node-base-with-eslint-prettier

完成形のソースコードはこちら↑

# この記事の趣旨

[TypeScript + Node.js プロジェクトのはじめかた2020](https://qiita.com/notakaos/items/3bbd2293e2ff286d9f49) で作成したTypeScript + Node.jsのプロジェクトに `ESLint` / `Pretiter` / `husky & lint-staged` を導入する手順を紹介します。

今回導入するツールとバージョンは以下になります。

項目 | バージョン
————|———–
ESLint | 7.6.0
Prettier | 2.0.5
husky | 4.2.5
lint-staged | 10.2.11

# 動作環境

node と npm はインストール済みとします。

“`sh
$ node

元記事を表示

【共有用】Windows10PCにNode.jsをインストールする手順

本記事では、Windows10PCにNode.jsをインストールする手順を紹介いたします。

##Node.jsとは
サーバーサイドで動かすことができるJavaScriptです。

JavaScriptは近年多くのWebサイトで活用されており
例えばカーソルを当てるとメニューが飛び出したり
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/d5e642a5-cbb7-8812-7163-4ce225269728.png)

クリックすると画像が拡大するような
動きのあるWebサイトを作成するのに不可欠な言語です。

Node.jsはこのJavaScriptをサーバサイド(裏側の仕組み)で活用することができる仕組みになります。

**公式では以下のように書かれています**
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 以下の「Hello World」の例では、たくさんの接続を同

元記事を表示

【Node.js 超入門】Node.jsとExpessを使ってCRUD処理できるサーバサイドの実装をする!

# 【Node.js 超入門】Node.jsとExpessを使ってCRUD処理できるサーバサイドの実装をする!

【Node.js 超入門】という参考書を読んで、Node.jsで実装した内容を備忘として書きます。

今回は、データベースを使って画面からユーザ情報を登録、更新などCRUD処理できるアプリケーションを作成します。
メインとしてNode.jsとExpressを使い、サーバサイドの処理を作ります。
データベースはMySQLを使います。

大まかな流れとしては、
・環境構築
・コード実装
・動作確認

続きはこちらの記事にまとめています!
https://masa-enjoy.com/nodejs-learning1

元記事を表示

OTHERカテゴリの最新記事