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

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

nvm環境のnpm自体をコマンド一発で最新化する方法

## コマンド一発でnpm自身を最新化する方法

nvm環境でnpm自体のアップデートがうまく行かなかったのでコマンド一発で成功する方法を公開しときます

### やり方

以下、bashコマンドラインで実行するだけの簡単なお仕事
ヒアドキュメント使ってるのでcatから下部のEOFまでコピーしてね
(Macの場合は「$PROGRAMFILES」環境変数とれないので書き換えればOK)

“`
$ cat < npm_update.sh && chmod +x npm_update.sh && ./npm_update.sh && rm -rf ./npm_update.sh
#!/usr/bin/bash
cd “$PROGRAMFILES”/nodejs
rm npm npx npm.cmd npx.cmd
mv node_modules/npm node_modules/npm2
node node_modules/npm2/bin/npm-cli.js i -g npm@latest
rm -rf node_modules/npm2/
EOF
“`

### やって

元記事を表示

[Node.js][JavaScript]CryptoAPIの違いでハマったのでまとめ

#Overview

Node.jsはJavaScriptで書けるから、Webの中では”Write once, run anywhere”的な美味しいこともある。
しかし、各環境にbuiltinされているAPIを使ったときはそうはいかない時がある。
今回は暗号化のCryptoで不覚にも1日ハマったのでその記録を残しておく。

#Target reader

– Node.jsで暗号化したデータをブラウザで復号化したいと思っている方。

#Prerequisite

– AESの概要は理解していること。
– 今回はAES256-CBCを使用する。
– 記憶が正しければAES192はブラウザのAPIでサポートされていない旨のエラーが出たため。

#Body

##どうして片方のAPIで統一しないの?

これはいい質問だ。実際のところ、Node.jsのcryptoをブラウザで実行したことがある。
どうして採用されなかったのか?**なぜなら100KBほどバンドルサイズが増えたから。**
詳しく知りたい場合は、この方の記事を読んでみるといいかもしれない。
https://enginee

元記事を表示

画像をスライダー形式にするswiperをyarnで導入するところまで

## yarnとは?

JavaScript(node.js)のパッケージマネージャで、2016年にFaceBookが公開したものです。
他にもパッケージマネージャーとしては**「npm」**とう言うものものありますが、今回は、yarnを使います。

yarnの仕組みは簡単で、$ yarn add 〇〇と言う形で、使いたいパッケージをインストールすると、package.jsonと言うファイルに、インストールしたパッケージに関する情報が記載され、$ yarn installを実行すると、開発環境下にパッケージ(関係するファイル一式)がインストールされ、パッケージを使うことができます。$ yarn installを実行すると、yarn.lockと言うファイルが生成され、固定されます。

実は、gemの管理とよく似ていて、gemの場合は、Gemfileに記載されたgemは、どの環境でも$ bundle installすればgem同士の互換性など考慮して良しなに調整してインストールしてくれて使えるようになりますが、yarnも似たような管理方法で、package.jsonに記載されているパッケ

元記事を表示

【Electron】Bootstrap4を使用する際、jQueryの読み込み位置のミスの解決方法-備忘録

# 目的
Electronでデスクトップアプリを作成する際に、Bootstrap4を使用して綺麗なデスクトップアプリを作成する。

# 準備
### BootStrapのインストール
“`
npm install bootstrap@4.0.0-beta
“`
### jQueryのインストール
“`
npm install jquery
“`
### Popper.jsのインストール
“`
npm install popper.js
“`
# 陥ったミス
### ソースコード
“`



test

元記事を表示

メッセージベースのMicroServiceをNode.js上で簡単につくれるSenecaを試してみた

# 背景

関わっているプロジェクトで触る機会があったので備忘録的にメモ

# Senecaとは

Node.js環境でメッセージベースのMicrorServiceを簡単に構築出来るパッケージ。メッセージはJSON形式です。

# Senecaの3つの重要な機能

– **Pattern matching**: Instead of fragile service discovery, you just let the world know what sort of messages you care about.
– **Transport independence**: You can send messages between services in many ways, all hidden from your business logic.
– **Componentisation**: Functionality is expressed as a set of plugins which can be composed together as microservices.

元記事を表示

webpackとは何なのか?

# 概要

執筆中

元記事を表示

ElectronでcontextBridgeによる安全なIPC通信(受信編)

## はじめに

Electronにおけるメインプロセスとレンダラープロセス間のやり取りに関して、セキュアなIPC通信にはcontextBridge[^1]を使おう、[という記事](https://qiita.com/pochman/items/64b34e9827866664d436)を前回書いたらそれなりに読んでもらえているみたいです。ありがとうございます。

その時の例として、レンダラープロセスからメインプロセスへの**送信**を扱いましたが、**受信**についてもリクエストがあったので紹介します。基本的にはStackOverFlow[^2]からの引用です。

基本的にElectronにおけるメニュー操作はメインプロセスでハンドルすることになるので、それをレンダラープロセスへ送る際には、**メインプロセスからチャンネル付きで信号を送信し、レンダラープロセスで受信時にチャンネルに従って処理を分ける**、ということをするでしょう。これを目的としたcontextBridgeの利用法です。

## 前回からの改修点

まずは前回の記事の方法3までをお読みください。今回は前回の方法3から

元記事を表示

【MongoDB】APIログ取るのに手軽で最高だった件 (+intellijだとさらに手軽)

#はじめに

気にはなっていたけど、なかなか触れる機会が無かった。。
そんな、同じクラスのあの子のような存在、それがmongoDBでした。
実際、使ってみると手軽でとても使いやすい。

こちらの記事では、簡単にインストールから導入までをまとめてみました。

#MongoDBを使った開発内容
趣味の個人開発でMongoDBを利用しました。
[APIを利用したbitcoin自動売買システム]

– bitcoin値取得にCryptWatchAPIを使用
– bitcoin売買にBitflyerAPIを使用
– 開発言語:Node.js
– 開発環境:macOS Catalina
– デプロイ環境: AWS:EC2:ubuntu18.04LTS

MongoDBはbitcoin売買時の値段と、その売買判断に使われた値のログを取りたくて使用しました。

#mongoDBとは
誤解を恐れずに極端に言うと、

**データをJSON形式でレコードできるデータベースです**

すいません! ここでは、わかりやすさ優先しましたm(_ _)m
(玄人の方々、マサカリ投げないでください。)

他にも、

元記事を表示

VPSで複数のNodeJSアプリをHTTPS化してホストする

VPSで複数のサービスのAPIサーバーを運用するための手順です。

**概要**

* Digital Ocean の Ubuntu イメージ(5USD/month)
* サブドメインに各アプリを紐づける
* Let’s Encrypt で SSL 化

## サーバーのセットアップ
### Digital Ocean Droplets のセットアップ
以下の設定でDropletsを作ります。
※ 他社のVPSサービスを利用する場合は、ドメインの`@` `www` `app1` `app2`をサーバーに向けてSSH接続できる状態までやってこの項を飛ばしてください。

* Image: Ubuntu
* Plan: Standard / 5USD
* Region: シンガポール
* Authentication: SSH keys

ドメインの管理画面から使うドメインの`www` `@` `app1` `app2` を上記で作ったサーバーに向けます。

“`bash
# SSH 接続 できることを確認
$ ssh root@yourdomain.com
“`

### メモリのス

元記事を表示

Node.js と Babel で ES6

なんか、いつも、Node.js で、ちょっとコード書いて試したり、勉強がてらコード書いたりするときに、 ES6なコード書きたい時どうすんだっけ? と悩んでしまうので、ここにメモしておきます。

実際に確認した時のそれぞれのバージョンは以下になります。

“`
$ node –version
v12.14.1
$ npm –version
6.13.4
$ npx –version
6.13.4
“`

あと、このメモ作成時にインストールされる Babel 関連パッケージのバージョンは、以下の通り。

“`
$ grep babel package.json
“@babel/cli”: “^7.8.4”,
“@babel/core”: “^7.8.4”,
“@babel/node”: “^7.8.4”,
“@babel/preset-env”: “^7.8.4”
“`

# 作業用のディレクトリを作る

“`
mkdir work
“`

# npm init を実行

“`
npm init -y
“`

# babel 関連を

元記事を表示

Nowでプロキシを建ててCORSエラーを爆速解決

# 前置き

`nuxt generate`で作った静的サイトをGitHub Pagesにホスティングし,自分のはてなブックマークのRSSをAxiosでGETして表示させようとしていました.

何も考えずにブラウザで開くとこんなエラーが出てうまくいきません.

“`
Access to XMLHttpRequest at ‘http://api.example.com’ from origin ‘http://localhost.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
“`

いわゆる,[オリジン間リソース共有(CORS)](https://developer.mozilla.org/ja/docs/Web/HTTP/CORS)における同一オリジンポリシー違反です.このエラーはブラウザにおいて,現在アクセスしてるサイトと異なるオリジンにあるリソースに対してリクエストを行うときに起きます.

元記事を表示

NestJS CLIで初心者でも簡単にNode.js REST APIが作れる!

Node.jsなんてほとんど使ったことがないのに、頑張って[NestJS](https://nestjs.com/)でCLIを使ってREST APIを作りました。
あまりドキュメントなかったことに加えて私のスキル不足で半日ほどかかってしまいましたが慣れれば30分もかからないです。

# 環境
Ubuntu18.04.01 LTSで動かしました。
NEST CLIの`nest info`でバージョン情報を見ます。

“`bash
$ nest info

_ _ _ ___ _____ _____ _ _____
| \ | | | | |_ |/ ___|/ __ \| | |_ _|
| \| | ___ ___ | |_ | |\ `–. | / \/| | | |
| . ` | / _ \/ __|| __| | | `–. \| | | | | |
| |\ || __/\__ \| |_ /\__/ //\__/ /| \__/

元記事を表示

GoogleのCloud Text-to-Speechを使ってDiscordの読み上げbotをサクっと作った

## Discordのメッセージ読み上げbot

Discordのボイスチャットで、特定のチャンネル内のメッセージを自動で読み上げてくれるbotを作りました。

Discordの読み上げbotとしては[喋太郎](https://www.d

元記事を表示

vue-cli-plugin-express でポート番号を指定してサーバーを起動する

vue-cli 3.x プラグインの [vue-cli-plugin-express](https://www.npmjs.com/package/vue-cli-plugin-express) にて、ポート番号を指定してサーバーを起動する際に詰まったので備忘録として。

この記事は vue のプロジェクトに `vue add express` でプラグインを追加した状態から進めていきます。

## 解決方法

`package.json` の `”scripts”` 内にある `”express”` または `”express:run”` の値の末尾に `–port [任意のポート番号]` を付け加えることで、ポート番号を指定してのサーバー起動に成功しました。

“`package.json
“scripts”: {
“serve”: “vue-cli-service serve”,
“build”: “vue-cli-service build”,
“lint”: “vue-cli-service lint”,
“express”: “vue

元記事を表示

【NestJS】ヘルスチェック

# やりたいこと

NestJS x TypeORM の環境で、DBまで一気通貫したヘルスチェック用URLを作りたい。
[terminus](https://github.com/godaddy/terminus)というNodeJS用のパッケージで、NestJS用のものがあるので、それを使います。

# 環境

– [NestJS 6.11.3](https://nestjs.com/)
– [TypeORM 6.2.0](https://github.com/typeorm/typeorm)
– [terminus 4.3.1](https://github.com/godaddy/terminus)
– [@nestjs/terminus 6.5.6](https://github.com/nestjs/terminus)

# インストール

“`
yarn add @nestjs/terminus @godaddy/terminus –no-optional

// or

npm install –save @nestjs/terminus @godaddy/termi

元記事を表示

Symbol Testnet node 構築備忘録

これは

https://billing.time4vps.com

借りたサーバーで

テストネットノードを構築した際の 備忘録である

この構築にあたっては

mikun氏@mikunNEM

の協力無くしては

成し得ませんでした 今一度 感謝の意を表します

セキュリティー編———————————————-
ここでは 例として
usernameを ”pasomi”
sshdportを ”20023″
として 作業を進めます

rootでログイン

新しいuser作成
adduser pasomi(任意の名前)

新しいuserにsudo権限付与
gpasswd -a pasomi sudo

sshポート変更とrootログイン禁止
vim /etc/ssh/sshd_config

“i”で編集を開始

接続Poetの変更
“#Port 22″を”Port 20023″(任意の数字)に変更

rootログインを禁止
“PermitRootLogin yes”を”PermitRootLogin no

元記事を表示

Node.js + Express サーバから、Docker(+Docker-Compose) + Redis サーバーにデータを送る・削除する

# Node.js サーバーから、Docker サーバにデータを送る
– Ubuntuサーバー環境は2つ使ってます
– マシンA
– Node.js + Express + express-session + connect-redis + Redis
– マシンB
– Docker + Docker-Compose + Redis

マシンA から マシンB を参照してデータを表示したかったので、こんな構成になってます。
色々サイト見てたけど、実際にやってみないとコレわかんねーわって思った。

## マシンAの下準備
### 色々インストールする
Ubuntu と Node.js は既に導入済を想定

#### 必要なものをインストールする

“`bash
$ mkdir exp_redis_test
$ cd exp_redis_test
$ npm install –save express \
express-session \
connect-redi

元記事を表示

【個人メモ】Node.js LINEBOT雛形

## プロジェクト作成とハローワールド

“`console
$ mkdir linebot
$ cd linebot
$ npm init -y
“`
“`console
$ npm i @line/bot-sdk express
“`
“`console
$ npm install dotenv –save
“`

“`console
$ touch index.js $$ .env
““
“`console
$ code .
“`

“`index.js
‘use strict’;

const express = require(‘express’);
const line = require(‘@line/bot-sdk’);
const PORT = process.env.PORT || 3000;
const dotenv = require(‘dotenv’)
dotenv.config()

const config = {
channelAccessToken: process.env.CHANNEL_ACCESS_TOKEN

元記事を表示

expo-cliというかnpmでconfigure errorが出たときの対応

いつも使ってるexpo-cliを利用しようとしたら、下記のようなエラーに遭遇した。

“`bash
gyp WARN EACCES current user (“nobody”) does not have permission to access the dev dir “/Users/xxxxxx/Library/Caches/node-gyp/12.3.1”
gyp WARN EACCES attempting to reinstall using temporary dev dir “/Users/xxxxxx/.anyenv/envs/nodenv/versions/12.3.1/lib/node_modules/expo-cli/node_modules/chokidar/node_modules/fsevents/.node-gyp”
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! confi

元記事を表示

Node.js + Express + express-session でセッション変数を使ってみる

# Express + express-session でセッション変数を試す

## 事前準備として、フォルダ作ったりパッケージインストールしたりする

“`bash
mkdir exps_test
cd exps_test
npm install –save express \
express-session \
body-parser \
ejs
“`

## http で確認したいので、 index.ejs を作っておく
index.ejs は view として作るので、views フォルダを作っておく
### views フォルダ内に index.ejs を作る

“`bash
mkdir views
cd views
nano index.ejs
“`

### index.ejs の内容はコレ

“`html:index.ejs




元記事を表示

OTHERカテゴリの最新記事