- 1. nvm環境のnpm自体をコマンド一発で最新化する方法
- 2. [Node.js][JavaScript]CryptoAPIの違いでハマったのでまとめ
- 3. 画像をスライダー形式にするswiperをyarnで導入するところまで
- 4. 【Electron】Bootstrap4を使用する際、jQueryの読み込み位置のミスの解決方法-備忘録
- 5. メッセージベースのMicroServiceをNode.js上で簡単につくれるSenecaを試してみた
- 6. webpackとは何なのか?
- 7. ElectronでcontextBridgeによる安全なIPC通信(受信編)
- 8. 【MongoDB】APIログ取るのに手軽で最高だった件 (+intellijだとさらに手軽)
- 9. VPSで複数のNodeJSアプリをHTTPS化してホストする
- 10. Node.js と Babel で ES6
- 11. Nowでプロキシを建ててCORSエラーを爆速解決
- 12. NestJS CLIで初心者でも簡単にNode.js REST APIが作れる!
- 13. GoogleのCloud Text-to-Speechを使ってDiscordの読み上げbotをサクっと作った
- 14. vue-cli-plugin-express でポート番号を指定してサーバーを起動する
- 15. 【NestJS】ヘルスチェック
- 16. Symbol Testnet node 構築備忘録
- 17. Node.js + Express サーバから、Docker(+Docker-Compose) + Redis サーバーにデータを送る・削除する
- 18. 【個人メモ】Node.js LINEBOT雛形
- 19. expo-cliというかnpmでconfigure errorが出たときの対応
- 20. Node.js + Express + express-session でセッション変数を使ってみる
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.04LTSMongoDBは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を作りました。
弊ディスコで導入されている読み上げbot pic.twitter.com/VvdzYlmqEz
— 古都こと (@kfurumiya) February 12, 2020
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 sudosshポート変更と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