- 0.1. npmでパッケージをインストールしたらnode-gypエラーが出た
- 0.2. Hardhatのチュートリアルをやってみた
- 0.3. Node.js + Expressの環境にロギング機能を追加してみる。
- 0.4. Mongoose 6 で meow
- 0.5. [nodejs] AWS IAM ユーザの secret_access_key から SES 用の SMTP パスワード を生成する
- 0.6. Ubuntu20.04でElectronでRepl.itで作成済のWEBアプリのガワアプリ作って動かしてみた
- 0.7. はじめてのVSCode拡張開発 ~公式手順は茨の道なのか?~
- 0.8. node.js v16 で nexeのコンパイルがこけてしまった時の対処法
- 0.9. 【Node.js】過去のバージョンへダウングレードする方法
- 0.10. 【メモ】Node.jsでAPI通信するサンプル実装
- 0.11. 【AWS】CodeBuildでNodeのバージョンを指定する方法
- 0.12. [npmとpackgejson]npm とpackage.jsonについての備忘録
- 0.13. [nuxt.js] Amazon Linux2 への Nuxt.js の導入と systemd でのデーモン化
- 0.14. vagrantでNode.js 環境の作成
- 0.15. Webの勉強はじめてみた その29 〜Webフレームワーク〜
- 1. Expressの導入
npmでパッケージをインストールしたらnode-gypエラーが出た
npmでパッケージをインストールしたら、node-gpyのエラーが発生しました。
コンパイル時に使われるPythoのバージョンが問題の場合があります。
pyenvをインストールし、Python2.7系を指定すると解決できます。“`
$ npm install
gyp ERR! ・・・
・・・
・・・
node-pre-gyp ERR! build error
・・・
“`
Hardhatのチュートリアルをやってみた
## Hardhatとは
Ethereumソフトウェアをコンパイル、デプロイ、テスト、およびデバッグするための開発環境公式:https://hardhat.org/
チュートリアル:https://hardhat.org/tutorial/### 特徴
– ローカルでSolidityの**テストやデバッグが可能**
– ローカルイーサリアムネットワーク(Hardhat Network)に**コントラクトを簡単にデプロイでき**、**トランザクションの失敗**や、**Solidityのエラー**、**console.log**、および**明示的なエラーメッセージ**を表示・確認できる
– **プラグインで機能を拡張できる**(公式やコミュニティーのもの以外に自作も可能)
– **TypeScriptをサポートしている**(このチュートリアルでは使用しません)## プロジェクトの設定
※nodeのバージョンは`>=12.0`をインストールしておく#### 1. プロジェクトのディレクトリーを作成し、package.jsonを生成と`hardhat`のインストール
“
Node.js + Expressの環境にロギング機能を追加してみる。
![log4jsのブログ用ヘッダー.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1299653/ac09f539-e4ed-6faa-38af-4c1e376bdcda.jpeg)
# Node.jsとExpressで構築したWebサーバーにロギング出力の設定を追加する。
今回は、Node.jsとExpressで構築したWebサーバーにロギング出力設定を追加してみたので
その設定の流れを共有してみたいと思います。## 準備
1. log4jsをインストールする。
2. ログ出力用の設定ファイルを作成する。
3. Webサーバーを起動させるファイルに設定を追加する。
4. ログを出力したい箇所にlogger.debug()メソッドを突っ込む。## ソースコード
今回のソースコードは下記リポジトリを利用しました。https://github.com/mashharuki/iroha
### 1.log4jsのインストール
まずは、下記コマンドでlog4jsをイ
Mongoose 6 で meow
## 認証エラーが出た
5系から6系に上げたら、MongoDB に接続できなかったので、ドキュメントを見てやってみたが、 “`AuthenticationFailed“` と出て接続できなかった。
## 解決策
“`?authSource=admin“` を付ける。
“`javascript
const mongoUrl = `mongodb://${user}:${password}@${host}:${port}/${dbname}?authSource=admin`;
mongoose.connect(mongoUrl);
“`## 猫がなくコード一式
“`docker-compose.yml
version: “3.1”services:
mongo:
container_name: mongo-dev
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
MONGO_IN
[nodejs] AWS IAM ユーザの secret_access_key から SES 用の SMTP パスワード を生成する
## TL;DR
– SES で生成した IAM ユーザ ses-smtp-user.YYYYMMDD にポリシーを足して、他の用途に流用しようと考えたが、どうも上手くいかない。
– 原因は、secret_access_key と SMTP 用のパスワードが異なるためだった。
– secret_access_key から SMTP 用のパスワードは生成できるようだ。逆はだめ。
– 公式のドキュメントには python 版が記されている
https://docs.aws.amazon.com/ses/latest/dg/smtp-credentials.html
– nodejs 版を記しておく“`js
const crypto = require(‘crypto’);const smtp_credentials_generate = (secret_access_key, region) => {
const version = 0x04;
const kMessage = [
‘11111111’, // date
Ubuntu20.04でElectronでRepl.itで作成済のWEBアプリのガワアプリ作って動かしてみた
## 0.初めに
この記事は以下の方を対象に書いています。
* 初心者
* Ubuntu20.04をデスクトップOSとして利用している
* PHPなどで簡単なWEBアプリがコピペ、修正できる
* オンラインIDEのRepl.itを知っている
* Node.jsやElectronが分かっているようで分かっていない要するにレアな人向けです…(^^;)
## 1.きっかけ
以下の記事を見たのがきっかけです。
最新版で学ぶElectron入門 – ウェブ技術でPCアプリを開発しよう – ICS MEDIA
https://ics.media/entry/7298/過去記事をちゃんと最新にメンテナンスされていて素晴らしい記事だと思います。
ただ以下の点が私には不十分でした。
* macOSとWindows向けでUbuntu無し
* ローカルのindex.htmlを利用するサンプルでガワアプリではないこの記事ではICS MEDIA様の記事をもとに違うところを書こうと思います。
なお、ガワアプリの元になるWEBアプリは以下の記事で過去に書いていますので
こちらも参考程度に
はじめてのVSCode拡張開発 ~公式手順は茨の道なのか?~
[はじめてVScode拡張 plugin](https://marketplace.visualstudio.com/items?itemName=ryokat3.vscode-qiita-markdown-preview) を作成しました。公式の [公式のMarketplaceの公開手順](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) を見る限りでは、[PyPI](https://pypi.org) や [npm](https://www.npmjs.com) でパッケージを公開するぐらいに簡単そうです。
ですがこの通りに行っても**とんでもなく上手くいきません**でした。顛末記として記事を共有することで、これから VSCode 拡張を開発する方の参考になれば幸いです。
この記事の手順で公開した VSCode 拡張プラグインが [Qiita Markdown Preview](https://marketplace.visualstudio.com/items?ite
node.js v16 で nexeのコンパイルがこけてしまった時の対処法
# nexeとは
> 引用: Nexeは、Node.jsアプリケーションを単一の実行可能ファイルにコンパイルするコマンドラインユーティリティです。
https://github.com/nexe/nexe
# 使用環境
* macOS `11.5.1` (Intel)
* node `v16.13.2`
* nexe `4.0.0-beta.19`# 発生した事象
* `npx nexe {project.js}` してみる。
* エラーが出て `using the –build flag` と表示される。
* `npx nexe {project.js} –build ` してみる。
* `Error: python ./configure.py –dest-cpu=x64 exited with code: 1`
というエラーが出てコンパイルが失敗してしまう# 解決策
下記のissue 参照。
https://github.com/nexe/nexe/issues/926`npx nexe src/index.js –build –
【Node.js】過去のバージョンへダウングレードする方法
# はじめに
新規のPJでNode.jsのv16をダウンロードしたら、別PJで使用していたv12が使えなくなったということがありました。その際にv12に戻すのに苦労したため、解決策を紹介していきます:point_up_tone1:# 前提
– 公式サイトからNode.jsのインストールを2回行い、2回目のバージョンでローカルのNode.jsのバージョンが上書きされた
– 1回目がv12で、2回目がv16です。
– nvm useコマンドによる切り替えができない
– 通常はこのコマンドを使用した場合にはバージョンの切り替えが可能ですが、切り替えができませんでした。nvm availableコマンドを実行した際に変更したいバージョン(v12)が表示されないことが原因かなと考えています。# 解決策(Windows)
1.PCの設定画面のアプリを開き、Node.jsをアンインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700107/d2b307b2-4429-35
【メモ】Node.jsでAPI通信するサンプル実装
下記の動画のメモです。
ゼロから半年でWeb系エンジニアになろう【完全まとめ版】
“`sh
# expressをインストール
npm i express
“`“`js:app.js
const express = require(‘express’)
const app = express()
const port = 3000 //通信の宛先を区別する どのアプリケーションと通信したいのか識別するもの
let booklog = {} //初期化するapp.use(express.json())
// 投稿POSTする
app.post(‘/booklog’, (req, res) => {
booklog = req.bodyif (!(booklog.name && booklog.text)) {
res.json({
“ok”: false,
“error”: “invalid parameter”
})
}
【AWS】CodeBuildでNodeのバージョンを指定する方法
ここ最近学業と就活が忙しく、全く記事が書けていないのですが、久しぶりに書きたい内容があったので書きます。
タイトルにも書いてあるとおり、今回はAWS CodeBuildでNodeのバージョンを指定します。
AWSはNodeのバージョンは10、12、14はサポートしているのですが、それ以上のバージョンはサポートされていません。
最近ではNodeの推奨バージョンが16になったので、なんともかゆいところに手は届きませんね。
そこで、2週間ほどネットサーフィンをしたところ解決に至りました。
# 結論
CodeBuildの環境イメージを以下に設定。
|ラベル|値|
|—|—|
|オペレーティングシステム|Ubuntu|
|イメージ|最新|
|イメージのバージョン|最新|
|環境タイプ|Linux|Buildspecの“install“フェーズで任意のバージョンを指定。
“`buildspec.yml
version 0.2phases:
install:
runtime-versions:
nodejs: 14 //ここはサポートされ
[npmとpackgejson]npm とpackage.jsonについての備忘録
##前書き
どうも!目先の利益を追って長期的な利益を失いがち、視野狭窄なグッピーです!
今回はまたまたnpmに関する理解がなくて仕事でミスをしたので、そのinputも兼ねて記事を書いていきたいと思います!##そもそもnpmとは??
npmの正式名称は**Node Packge Maneger**です。npmの正式名称からも分かるように、Node.jsのパッケージを管理するツールです。Node.jsのパッケージとはあらかじめ用意された便利な機能群のことですね。##Node.jsとは
ならNode.jsとはなんぞやって話なんですけど、Unix系のプラットフォーム上のサーバーサイドスクリプト環境のことですね。簡単に言うとサーバーサイドでもJavaScriptを動かせるようにする環境のことですね。※Unixとは・・・OSのこと。macやwindowsもUnixが使われているよ。
※osとは・・・・基本ソフトウェアのこと。ハードウェアやアプリなどの応用ソフトウェアを繋ぐ役割を果たしている。##Node.jsのメリットデメリット
###メリット
軽量であるために、リアルタイムで
[nuxt.js] Amazon Linux2 への Nuxt.js の導入と systemd でのデーモン化
# インストール
## Node.js のインストール
“`bash
$ curl –silent –location https://rpm.nodesource.com/setup_14.x | sudo bash –
$ sudo yum install nodejs
$ node –version
v14.19.0
$ npm –version
6.14.16
“`## vue-cli のインストール
“`bash
$ sudo npm install -g @vue/cli
$ vue –version
@vue/cli 4.5.15
“`## Nuxt.js アプリケーションの作成
“`bash
$ pwd
/home/ec2-user
$ npx create-nuxt-app my-project
“`## Nuxt.js アプリケーションの build と動作確認
“`bash
$ pwd
/home/ec2-user/my-project
$ npm run build
$ npm run start> my-pro
vagrantでNode.js 環境の作成
# 前提条件
vagrantが既に準備してあること# 作業directoryの作成
“`shell:ディレクトリの作成と移動
mkdir my_vagrant_sample
cd my_vagrant_sample
“`
my_vagrant_sampleのところはなんでもいい# 新しいボックスの作成、起動とログイン
“`shell:起動と作成
vagrant init centos/7
vagrant up
vagrant ssh
“`# もしディレクトリの共有をしたい場合
まず共有機能を使うためにはゲスト側にGuest addtionというものをインストールしないといけない。
そのために必要な準備が2つある。1つ目はvbguestというvagrant用のプラグインのインストール
“`shell:vagrant-vbguestのインストール
vagrant plugin install vagrant-vbguest
“`2つ目はゲスト0S側でguest addtionをインストールするためパッケージのインストール。
“`shell:ログイン
Webの勉強はじめてみた その29 〜Webフレームワーク〜
N予備校「プログラミング入門Webアプリ」を受講しています。
今回から第4章になります。Expressの導入
Webフレームワークとして、`Express`を使います。
雛形を作るための`express-generator`をインストール“`
yarn global add express-generator@4.16.0
“`テンプレートエンジンを`pug`に設定して、カレントディレクトリに雛形を作成する
“`
express –view=pug .
“``package.json`の中を見ると、`yarn start`で起動できることがわかる。
“`json:package.json
“scripts”: {
“start”: “node ./bin/www”
}
“`Portの設定
“`javascript:www
/**
* Get port from environment and store in Express.
*/var port = normalizePort(process.env.P
Node.jsインストール
“`
curl –silent –location https://rpm.nodesource.com/setup_16.x | sudo bash –
yum install nodejs
““【備考】以前のやり方
“`
yum install nodejs npm –enablerepo=epel
“`#Expressの導入
“`
npm install -g express
“`#Expressの利用
画面にejsを利用“`
express -e ディレクトリ名 -t ejs
cd ディレクトリ名 && npm install
npm install
“`
企業のテックブログの更新をまとめたRSSフィードを作りました!(GitHub Actions)
1つ1つフィードリーダーで管理するのが面倒なので、まとめたRSSフィードを作りました!
[](https://yamadashy.github.io/tech-blog-rss-feed/)
フィードのURLはこちら
“`text:Atomフィード
https://yamadashy.github.io/tech-blog-rss-feed/feeds/atom.xml
“`“`text:RSSフィード
https://yamadashy.github.io/tech-blog-rss-feed/feeds/rss.xml
“`横断的なテックブログのウォッチや、転職先探しなどにご活用ください。
サイトからもフィードURLをコピーでき、直近更新された記事も閲覧できます。
[企業テックブログRSS](https://yamadashy
TypeScriptでfs, pathモジュールがインポートできなかった (Next.js Tutorial)
# はじめに
Next.jsのチュートリアルをTypeScriptでやっていた際に、モジュールが見つからないとVSCodeに言われました。
悲しい。# 問題
**モジュールfsとpathがインポートできません。**
公式チュートリアルのプリレンダリング(SSG vs SSR)の部分で、`posts.js`なるものを作るのですが、自分はTypeScriptでやりたかったため、`posts.ts`としました。
しかし、JSファイルだとインポートできていたモジュールが、TSファイルにするとできなくなってしまいました。困った。“`posts.js:
// 公式のチュートリアルコード
import fs from ‘fs’
import path from ‘path’
“`# 解決策
**`@types/node`をインストールすればよいらしい。**
TS用のモジュールパッケージが入っていない感じなのかな?
理屈はわかりませんが、とりあえず参考ページにあったコマンドを叩く。“`
npm install –save-dev @types/node# 自分はDocke
MongoDBにNode.jsで接続するときの認証について
# やりたいこと
DockerでNodeのコンテナを作成し、MongoDBのコンテナにアクセスしたい。しかし、接続ができない(認証が失敗する)ときがあるので、方法として3種類紹介したいと思います。
Node.js初心者なので書き方がよくなかったり、こんな方法使わんだろと思うかもしれません。ぜひ教えていただきたいです。# 実装について
node: Node.jsのコンテナでMongoDBのコンテナにアクセスしていろいろしたい
mongodb: mongoのコンテナでデータベースサーバ一応、docker-composeファイルを載せておきます。
“`yml:docker-compose.yml
version: “3.8”services:
mongodb:
container_name: “mongodb”
hostname: “mongodb”
image: mongo:5.0.5
restart: always
ports:
– 27017:27017
volumes:
– ./mong
Twitter Spaceの音声をダウンロードする方法
# 環境
デバイス: MacBook Retina 2017
OS: macOS Big Sur バージョン 11.6.1# 必要なソフト
- FFmpeg
- Node.js
- space-dl
# 必要なソフトのインストール
## Homebrewをインストールする
[Homebrew](https://brew.sh/index_ja)のサイトにあるインストールコマンドをターミナルに貼り付け実行する。
インストールスクリプト
“`shell
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`## FFmpegをインストールする
Homebrewを使うことで以下のコマンドで簡単にインストールすることができます。
“`shell
brew install ffmpeg
“`## Node.jsをインストールする
[Node.jsダ