- 1. Laravel Mix で ERR_OSSL_EVP_UNSUPPORTED が出た時の対策
- 2. Node.js on Dockerでエラー発生(Error: EACCES: permission denied, errno: -13)
- 3. ‘el’ is defined but never used no-unused-vars…のエラー解決方法。
- 4. Okta + OIDC(Node Express) 로그인 따라하기
- 5. Expressのテンプレートエンジンにejsを使う時、ejs内でexpressのlocalsを参照できる
- 6. fnm (Fast Node Manager) のインストール方法と使い方
- 7. Express.jsにPassport.jsで、任意のフォルダ配下のみをBasic認証する その2
- 8. メモ:node.jsのjestでユニットテスト
- 9. Symbolブロックチェーンで不正な署名要求を検知し、注意喚起のメッセージを送る方法
- 10. SORACOM LTE-M Button plusをトリガーに、LINE Notifyで位置情報を通知する
- 11. Googleさんの zx をローカルインストールして「nodeコマンドで実行」/「ファイルを直接指定して実行」
- 12. Express.jsにPassport.jsで、任意のフォルダ配下のみをBasic認証する
- 13. javascriptの変更をブラウザに即時反映して動作確認したい
- 14. ワイ「Node.jsってなんぞや?」
- 15. Expressで実装したREST APIのresponseスキーマはjest-openapiで期待通りか?テストできる
- 16. 【Sequelize】ハマったポイントのメモ
- 17. JavaScriptのClassでprivateメソッドを実装すると「Parsing error: Unexpected character ‘#’ eslint」エラーになる
- 18. Google Cloud Functions で Twitter の定期投稿Botを作成
- 19. Windowsでnode-gypが成功した話
- 20. 私がサクッと認証付きで Node.js からメールを送った話
Laravel Mix で ERR_OSSL_EVP_UNSUPPORTED が出た時の対策
npm run dev を行った時、次のようなエラーが出ます。
“`text
{
opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error’ ],
library: ‘digital envelope routines’,
reason: ‘unsupported’,
code: ‘ERR_OSSL_EVP_UNSUPPORTED’
}
“`これは次のバージョンで発生します。
“`text
Node.js v17.3.1
Node.js v17.3.0
Node.js v17.2.0
Node.js v17.0.0
“`次のバージョンでは発生しないことを確認しました。
“`text
Compiled Successfully
“`“`text
v16.13.2
v16.10.0
v15.14.0
v15.0.0
v14.8.3
v14.8.2
v14.8.1
“`
Node.js on Dockerでエラー発生(Error: EACCES: permission denied, errno: -13)
# はじめに
DockerでNext.jsを使ってウェブページを作ろうとしたけど、`npx create-next-app {name}`の段階で`glob error`っていうワケワカランのが発生した。テンションが下がった。# 環境
– Linux (KDE neon based on Ubuntu)
– Docker version 20.10.12
– image node:17.3-alpine# 問題
“`
# コマンドをうちこむ
docker-compose run –rm node npx create-next-app nextjs-tutorial
Creating nextjs-tutorial_node_run … done
Creating a new Next.js app in /usr/src/app/nextjs-tutorial.Using npm.
Installing dependencies:
– react
– react-dom
– next
#エラー❗❗❗なにこれ。
glob error [Error: EACCES
‘el’ is defined but never used no-unused-vars…のエラー解決方法。
Vue.jsでVue CLIを使った環境で学習していて、
npm run serveでサーバー立ち上げた際に問題が起こりました。“`
kushiyama_makoto@MakotonoMacBook-Air udemy-vuejs4 % npm run serve> udemy-vuejs4@0.1.0 serve
> vue-cli-service serveINFO Starting development server…
98% after emitting CopyPluginERROR Failed to compile with 1 error 14:40:38
error in ./src/App.vue
Module Error (from ./node_modules/eslint-loader/index.js)
Okta + OIDC(Node Express) 로그인 따라하기
![okta-node-logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/8f26ff95-24e5-1cff-24e5-442fc92ebeec.png)
#TL;DR
> [Express & Okta-Hosted Login Page Example](https://github.com/okta/samples-nodejs-express-4/tree/master/okta-hosted-login) 샘플 코드를 따라해보았습니다.
> 서버 설정과 Okta Admin 설정을 스크린샷 위주로 꼼꼼히 기록하였습니다.#사전환경
– node.js 12“`shell
# node.js 12 설치
$ curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash –
$ yum install -y nodejs# 설치확인
$ node -v
v12.2.29
$ npm -v
6.14.
Expressのテンプレートエンジンにejsを使う時、ejs内でexpressのlocalsを参照できる
## はじめに
Expressでテンプレートエンジンejsを使った実装をする時に、ejs内ではExpressのlocalsを参照できるという事を知ったので、具体的にどうなるのか?を少しまとめてみた。## ejs内ではexpressのapp.localsやres.localsのlocalsを参照できる
[res.render(view [, locals] [, callback])](https://expressjs.com/en/4x/api.html#res.render)には、> locals, an object whose properties define local variables for the view(ビューのローカル変数を定義するプロパティを持つオブジェクト).
と書かれているので、あくまでres.render()の第二引数に渡す値のみがテンプレートエンジン内(ejs)で使えるのかと思っていたが、実際にはejs内では`locals`というオブジェクトに、res.render()の第二引数のオブジェクトと、expressのlocals(app.loc
fnm (Fast Node Manager) のインストール方法と使い方
これまで Windows で Node.js のバージョン管理は Nodist を利用していましたが、2019年3月30日のリリース以降更新されていません…:sleeping:
https://github.com/nullivex/nodist
そんな理由から別のバージョン管理ツールに乗り換えをすすめる記事をちらほら見かけるようになりました。
乗り換えなければと思いつつ、
* Node.js が利用できなくなると仕事にならない
* 種類が多くてどれを選んだらいいのかわからない
* インストールが大変そうという理由からずっとスルーしていました…
しかし、以下記事と出会い、 fnm (Fast Node Manager) に乗り換えることにしました!
https://qiita.com/heppokofrontend/items/5c4cc738c5239f4afe02?0
fnm の詳細は以下をご覧ください。
https://github.com/Schniz/fnm
というわけで、 fnm のインストール方法を紹介します。
ちなみに Nodist は以下の手順
Express.jsにPassport.jsで、任意のフォルダ配下のみをBasic認証する その2
## 概要
expressを使って特定フォルダのみパスワードを掛けたい。こんどこそ、express-basic-authを使って。
“`JavaScript
const express = require(“express”);
const basicAuth = require(“express-basic-auth”);
const PORT = 3000;
const app = express();
//
app.use(“/admin”, basicAuth({
users: { ‘user’: ‘pass’ },
challenge: true,
}), express.static(“public/admin”));
//
app.use(“/”, express.static(“public/”) );
app.listen(PORT, () => {
console.log(“app listening on port ” + PORT + ” ” + new Date());
});“`
## 結論
やったー。動いた!ばんざーい。
メモ:node.jsのjestでユニットテスト
[pythonのユニットテストpytest](https://qiita.com/DiveMasakazu/items/b242e92ab4aca99c6877)は軽く見たので、node.jsも見ておく。
現時点だとjestというのが一番良さそう。
[公式日本語版}(https://jestjs.io/ja/docs/getting-started)ぽいのや
[ここ](https://qiita.com/rnasahiro/items/2d6584a915745218442e)、[ここ](https://webbibouroku.com/Blog/Article/typescript-jest)
を確認しながら。#インストール
単体だと`npm install jest`だが
`npm install typescript jest @types/jest ts-jest`で入れた。
実際の開発現場だと`–save-dev`してるのかも
27.4.5で入った。`jest -init`コマンドを流すのだが
“`
C:\nodejs\jest>.\node_modules\.
Symbolブロックチェーンで不正な署名要求を検知し、注意喚起のメッセージを送る方法
現在Symbolブロックチェーン上で、全額振り込みのトランザクションに署名させる詐欺が確認されています。今回はそういった詐欺行為を検知し、注意喚起のメッセージをトランザクションに載せて自動で送信する方法を紹介します。
いつもはBrowser上のJavascriptで紹介していますが、今回は常駐させる必要があるのでNodeJS上で動かします。もちろんブラウザ上で起動させて、イベント期間中だけ入金したアカウントにチケットを配布させるローコードでデプロイレスなスマートコントラクトとして利用するなども可能です。ソースコードについては以下の記事を参考にさせていただきました。
https://qiita.com/VistielArch/items/9d9046d4a21f22debd8e
“`js
const sym = require(“symbol-sdk”);
const nodeURL = ‘https://node.xembook.net’;//詐欺アカウント
const scamAddress = sym.Address.createFromRawAddress(‘
SORACOM LTE-M Button plusをトリガーに、LINE Notifyで位置情報を通知する
#はじめに
SORACOM LTE-M Button powered by AWSを以前使っていたのですが、紛失。
しかし最近このLTE-Mボタンを使う機会ができたので、これを機にLTE-M Button Plusを買いました。https://soracom.jp/store/5207/
そしてこのLTE-M ボタン Plusを使い、AWS lambda、そしてIFTTTを介してLINE Notifyの通知を使う事を実現してみました。
IFTTTのLINE Notifyの設定でgoogle staticmaps apiを叩くようにし、座標情報はLTE-Mボタンから取得。
これでボタンを押すとNotifyが届くと共に大まかな現在地のマップの静止画も表示されるようになりましたこれで富士スピードウェイのどのあたりで連絡してきたか分かるはず? pic.twitter.com/UNlwXDll86
— norippy@車とIoTを楽しむおじさん (@Norio_Delux) January 12, 2022
調べてわかったのですが、このボタンはPowered by AWSのモデルと違いボタンを押した位置座標を大まかではあるものの取得できる機能があります。そこで、今回はtwitterの動画にあるように、LINE Notifyに文章を送るだけでなく、今の位置情報をGoogle maps APIの中のStatick map APIを使って一緒に今の位置情報を画像で送ってみました。
この記事ではこの実現方法をまとめます。
#開
Googleさんの zx をローカルインストールして「nodeコマンドで実行」/「ファイルを直接指定して実行」
この記事の内容は、昨年末のアドベントカレンダー用の記事でも扱った、[Googleさんの zx](https://github.com/google/zx) に関するものです。
●【Backlog 2021】 Googleさんの zx で Backlog API を扱う(JavaScript で課題を追加する) – Qiita
https://qiita.com/youtoy/items/36ea84e09332d4e6815a## 何をやるか
今回の記事で扱う内容は、以下のとおりです。– `npm i zx` で zx をローカルにインストールして使う
– `node ●●.mjs` というような nodeコマンドを使った処理の実行
– `./●●.mjs` というようなファイルを直接実行する形での処理## 下準備
冒頭の記事でも書いている、今回のセットアップの話をざっくり書きます。
なお、自分が試している環境は Mac で、Node.js のバージョンは 14.18.2 です。Node.js のバージョンについては、公式ページに以下の指定がありますので、その点だけ
Express.jsにPassport.jsで、任意のフォルダ配下のみをBasic認証する
## 概要
expressを使って特定フォルダのみパスワードを掛けたい。参考サイト、、、っていうかほぼ以下のページからゴニョゴニョした。
ありがとうございます。
Express.jsにPassport.jsで、任意のフォルダ配下のみをBasic認証する
https://qiita.com/hoshimado/items/272fba1aeb728e14f278“`JavaScript
const express = require(“express”);
const PORT = 3000;
const app = express();
//
const passport = require(“passport”);
const passportHttp = require(“passport-http”);
passport.use(new passportHttp.BasicStrategy(
function (username, password, done) {
if(username==”user” && password==”pass”){
javascriptの変更をブラウザに即時反映して動作確認したい
# javascriptの変更をブラウザに即時反映して動作確認したい
lite-serverを利用する。
jsやtypescriptを利用して開発をしている場合に、スクリプトの反映をわざわざブラウザの再読み込みを押さなくとも開いているブラウザを自動でリロードしてくれるツール。
# 利用できる環境構成
html & javascript & css で構成されているサーバーロジックに依存しないシステムや開発フェーズにおいて効果を発揮する。
# セットアップにいいサイト
https://enjoy-a-lot.com/typescript-init/#toc4
# 利用する際にいいサイト
# わからないこと
– どんな仕組みで動いているか
– Webサーバーを持つような場合に利用シーンがあるのか、ないのか判断できてない(基本はなさそうな気がする)
ワイ「Node.jsってなんぞや?」
#ワイ「JavaScriptを触りたいンゴ」
ワイ「せっかくJavaScriptとTypeScriptについて知ったから触ってみたいで」
PC「JavaScriptはブラウザ上で動く言語やで^^」
ワイ「なんやこいつ」
ワイ「C++とかPythonとかとは仕様が違うんか」
PC「せや」
PC「だからファイルの読み書きが出来なかったり、通信が出来なかったりするんやで^^」
ワイ「なんやこいつ」
![js-ts.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379533/df4cc731-f64f-17ab-1270-90e15ab6ab65.jpeg)#ワイ「どうするのが正解なんや?」
ワイ「まあ誰かがいい感じの作ってくれてるやろ(未来予知)」
PC「`Node.js`を使えばいいんやで」
ワイ「ほらな」
ワイ「なんやそいつは」
Nodeくん「説明しよう!!」
ワイ「なんやこいつは」
Nodeくん「`Node.js`は一言で言うと、JavaScriptの`実行環境`だよ」
Nodeくん「ローカルで実
Expressで実装したREST APIのresponseスキーマはjest-openapiで期待通りか?テストできる
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/n3725f8a55b8d**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です**
【Sequelize】ハマったポイントのメモ
Sequelizeを少し使ってみて、いろいろハマったところがあったので、そのメモ。
version: “Sequelize CLI [Node: 16.13.1, CLI: 6.3.0, ORM: 6.12.0-beta.1]“# migrationでファイルを指定してundoするときの注意点
“db:migrate:undo:all“に“–to“オプションを付けてファイル名を指定すると、「そのファイルまで」undoされる。
例えば、migrationパス配下にA、B、Cの3ファイルがあって、A→B→Cの順に作成していたと仮定して、“–to A“と指定すると、AだけでなくBもCもundoされる点に注意。
決して「そのファイルの分だけをundoする」という意味ではない。
※基本的には[ここ](https://sequelize.org/master/manual/migrations.html#undoing-migrations)に載ってる# sequelizeオブジェクトのつくりかた
“sequelize.query“とかを使うために“seq
JavaScriptのClassでprivateメソッドを実装すると「Parsing error: Unexpected character ‘#’ eslint」エラーになる
## はじめに
ESLintを設定している時に、以下の図のようなエラーが発生した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/7f45977c-39c1-9484-2659-c54ecba53200.png)今回はこのエラーを解消する方法について調べてみたのでその備忘録を残す。
## ESLintについて
https://qiita.com/yuta-katayama-23/items/5d73bbe79c19301551df#eslint%E3%81%AE%E8%A8%AD%E5%AE%9Aを参照。
## ESLintのparserOptionsを指定する
JavaScriptsのprivateメソッドはes2022の機能なため、以下のようにESLintの設定を変える必要がある。“`json
// .eslint.json
{
…
“parserOptions”: {
“ecmaVersion”: 13
},
…
}
“`
Google Cloud Functions で Twitter の定期投稿Botを作成
#はじめに
Twitterに定期的に投稿するBotを作ってみたのでその記録。
Twitter APIはGoogle Cloud Functions 上でnode.jsで実装。
スケジューリングは Google Cloud Schedulerを利用した。
Cloud Schedulerからは直接Cloud Functions を起動できないので、間にGoogle Cloud Pub/Sub を挟んでいる。####ポイント
– Firebaseは利用しない(Firebaseが必須というような記事も見受けられるが誤解)
– TypeScriptも利用しない(Cloud Functionsが未対応なので使用しない)#Twitter APIの準備
TwitterのAPIを利用するにはAPIのキーが必要だがこれはTwitter Developer Potalで取得する。
この辺りは、こちらあたりの記事が参考になるかと思う。
参考 [Twitter API を利用するには](https://qiita.com/taishi0202/items/092c267c0c6dc68347c5)注
Windowsでnode-gypが成功した話
## エラーが出る人は下準備をしていない?!
エラーが出るのはnode-gypの基準に満たしてないかも!
[node-gyp公式サイト](https://github.com/nodejs/node-gyp#on-windows)に詳しい情報が載ってるので英語が得意な人は読んでみてください。## 下準備
以下のことを順番通りにしてみてください!## Pythonのインストール
まず、Pythonをインストールしてください。
[Microsoft StoreのPython](https://docs.python.org/3/using/windows.html#the-microsoft-store-package)をおすすめします。## Visual Studio Build Toolsのインストール
Pythonの次に、[Visual Studio Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)が必要です。
私がサクッと認証付きで Node.js からメールを送った話
## 認証付きで Node.js からメールを送るのは初心者には難しい?
人によって難易度は違うように感じますが、これはそこそこ難しいと思います。
どうしても、エラー文が分かりにくく解決策も簡単に見せてはくれません。
なので、挑戦するときは **挑戦して成功した人** と一緒に挑戦するといいでしょう。## 必須条件
– Node.js が扱える・動かせる
– メール・Node.js についての知識がそこそこある
– サーバーとドメインがある
– サーバーで、すでに Node.js 製の何か(Web サーバー等)があり、ドメインの設定等が済んでいる## Zoho 契約
### 無料で使える Zoho メールサービスに契約
[Zoho 公式サイト](https://mail.zoho.com/)にアクセスして、契約してください。
契約はサイトの通りにしてください。### Zoho メールサービスのセッティング
このサービスのセットアップウィザードは、非常に分かりやすいのでここに記載する必要はないでしょう。
### おっと!
Zoho のメールサービスの