- 1. GoogleAPIをNode.jsから叩いてみた
- 2. 【アプリ開発 2】【Node.js JavaScript MongoDB】 JavaScriptを用いて端末の現在地を取得する。【2021年1月】
- 3. 【Node.js】開発に必要な基礎知識まとめ
- 4. Nodejs Eslintの初期化設定で失敗した時の対応方法
- 5. node.jsにnodemonをインストールするが動かない人へ
- 6. Node.jsを勉強する – nodemonを使う
- 7. mongoDBにmongooseで接続できない対処
- 8. Node.jsを勉強する④ – npmモジュールを使う
- 9. Node.jsを勉強する③ – Javascriptファイル間の連携
- 10. 部屋に置いてあるワインをそのまま飲んでよいか調べるために今の室温を測る。
- 11. 【Node.js Express】Passport.jsを用いて認証機能を実装する。(passportLocalMongooseをプラグイン)
- 12. node.js上のpuppeteerライブラリでHTML表の全行の要素をスクレイピングする
- 13. Raspberry Pi用node.jsでゲームパッド入力をキーボード/マウス入力に変換する
- 14. [Node.js] 新規アプリケーションの製作方法
- 15. 【Robocode】JavaScriptを勉強しながら戦車ゲームを攻略していく その1
- 16. javascriptによる並列処理
- 17. Node.jsのプロファイリングを試してみる
- 18. Node.jsを勉強する② – テキストファイルの作成方法
- 19. Node.jsを勉強する① – 開発環境構築
- 20. ElectronアプリでKeycloakと連携(3. ログイン機能導入編)
GoogleAPIをNode.jsから叩いてみた
今更ながら、GoogleAPIをNode.jsから触ってみます。
Google Drive、Gmail、Google Calendar、Googleフォトなど、皆さんgoogleサービスにお世話になっているのではないでしょうか。
ちゃんと、APIも提供されていて、npmモジュールもあるので、今後もいろいろ使えるかもしれません。
本人認証して簡単なリスト表示をするところまでですが、後はリファレンスを見れば拡張できるかと思います。GitHubに上げておきます。
poruruba/GoogleApiSample
https://github.com/poruruba/GoogleApiSample#参考情報
googleapis/google-api-nodes-client
https://github.com/googleapis/google-api-nodejs-clientGoogle Cloud Platform Console
https://console.cloud.google.com/Google CalendarのQuickStart
ht
【アプリ開発 2】【Node.js JavaScript MongoDB】 JavaScriptを用いて端末の現在地を取得する。【2021年1月】
#Node.js Express MongoDBを用いたアプリ開発
Node.js Express MongoDBを用いたアプリ開発を行うことになりました。
開発の中で得られた知見を、支障のない範囲で記録していきたいと思います。アプリの仕様上、各ユーザーの携帯電話の位置情報を取得し、googleマップ上で表示させる必要が生じました。
まずは、位置情報を取得する機能を実装してみます。##要件
– ユーザーがログインし、「位置情報通知」ボタンをクリックした場合、位置情報がデーターベースに格納される。
– ユーザーがログアウトもしくは、「位置情報通知解除」ボタンをクリックした場合、位置情報がデーターベースから削除される。
– 24時になった時点で、ユーザーの操作なしに、「位置情報通知解除」状態となる。
– ユーザーの位置が変更した場合、最新の位置情報がデータベースに格納される。
– 管理者は、定期的にデーターベースにアクセスしGoogleマップを用いて、ユーザーの位置を確認することができる。
– 位置情報には、ユーザーの連絡先と、コメント等が表示される。##Javascriptを
【Node.js】開発に必要な基礎知識まとめ
## はじめに
Node.jsで開発するにあたり必要な知識について手順とともにまとめてみました。## Node.jsについて
JavaScriptをサーバーサイドで動かす仕組みのこと## Expressについて
– Node.jsでWebアプリの開発をするためのフレームワーク
– Webアプリケーションを作る機能を提供する### Expressの導入方法
npmというシステムを使いインストールをする“`console
$npm install express
“`### インストールしたExpressの利用方法
jsへの記述“`javascript
// expressの読み込み
const express = require(‘express’);
// expressを使用するための準備
const app = express();
“`
## サーバーの起動について
サーバーを起動し、Webアプリを画面に表示する方法ですjsへの記述
“`javascript
// アクセス可能なサーバーを起動する(ここではlocalhost:8080)
a
Nodejs Eslintの初期化設定で失敗した時の対応方法
# Nodejs Eslint 初期化設定で失敗した時の対応方法
**npm install eslint@^x.xx –save-dev** コマンドを実施したあと、eslintをインストールし、
初期化を実施しようと、**.\node_modules\.bin\eslint –init**コマンドを実施、
How would you like to configure ESLint? の質問に対して Answer questions about your styleを選択しEnterを押したところ、そこから何の進展もなかった時、その解決方法を共有します。## 環境の整理
– 開発環境:Windows10 Home 64ビットオペレーティングシステム、x64ベースプロセッサ
– Node version: v12.xx.xx
– ESLint version: v4.19.1## 現象
![not.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676239/ca3437cc-d99b-a6
node.jsにnodemonをインストールするが動かない人へ
node.jsにnodemonを入れると変更を監視してくれるので開発効率が上がる。
しかしnodemonをinstallしても動かない人一旦アンインストールして以下を試して欲しい。#####エラー内容
“`
bash: nodemon: command not found
“`#####解決方法
“`
//アンインストールする
npm uninstall nodemon//グローバルしてインストール
sudo npm install -g –force nodemon
“`ローカル開発環境にVSで開発するのが主流だと思うが、当方いつでもどこでも開発したいのでC9で開発しようと思ったらこのエラーにぶち当たった。
誰かの役に立てば。
Node.jsを勉強する – nodemonを使う
##はじめに
nodemonの使い方を備忘録として、まとめておきます。
##教材
Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/##インストール
npmのウェブサイトの[nodemonのページ](https://www.npmjs.com/package/nodemon)からインストールコマンドをコピーし、ターミナルで実行。“`terminal:ターミナル
//ローカルインストールする場合
npm install nodemon
/グローバルインストールする場合
npm install -g nodemon
“`##jsファイルの実行
node ファイル名の代わりに、nodemon ファイル名でファイルを実行します。
今回は、app.jsという名前のファイルを作り、実行します。“`javascript:app.js
consol.log(“Hello World
mongoDBにmongooseで接続できない対処
コマンドで$ node サーバーを起動するとサーバーは起動するがエラーが出る。以下
(node:2809) UnhandledPromiseRejectionWarning: Error: querySrv EREFUSED _mongodb._tcp.test.s1sce.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] …
その対処。mongoose公式には
await mongoose.connect(‘mongodb://localhost/my_database’, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
});
とあるが、これを
async () => {
await mongoose.connect(‘mongodb://localhost/my_database’, {
useNewUrlParser: true,
use
Node.jsを勉強する④ – npmモジュールを使う
##はじめに
前回は[Javascriptファイル間の連携](https://qiita.com/arata0520/items/5396b514876e542334bc)についてまとめました。
今回はnpmモジュールの使い方を記事にします##教材
Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/##npmモジュールを開始する
ルートディレクトリでnpm initのコマンドを実行することでコンフィギュレーションファイルを作成し、npmモジュールの使用を開始する“`terminal:ターミナル
npm init
“`するとpackage.jsonという名前のファイルが作られます。
“`JSON:package.json
{
“name”: “notes-app”,
“version”: “1.0.0”,
“description”: “”,
“
Node.jsを勉強する③ – Javascriptファイル間の連携
##はじめに
前回は[テキストファイルの作成](https://qiita.com/arata0520/items/1256228ba79c902f64c5)についてまとめました。
今回はJavascriptファイル間の連携について記事にします。
##教材
Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/##ファイルの作成
連携したいJavascrptのファイルを2つ作ります。
それぞれ、app.jsとutils.jsと名付け、utils.jsにconsol.logを用いてメッセージを書きます。“`javascript:utils.js
console.log(“The JS files are connected!”)
“`##ファイルの連携
今回は、utils.jsをapp.js上で呼び出します。
requireを用いますが、その際、呼び出したいファイル(今回はu
部屋に置いてあるワインをそのまま飲んでよいか調べるために今の室温を測る。
#ワインの飲み頃の温度に応じた色で光る
白に光った。
ピンクにも変わったりするので大体9℃前後です。
#冬だから、部屋にお酒を置いておくだけでちょうどよい?
夏だったらキリっと冷やした白ワインを飲むときに冷えた状態に必要があって、いつも飲む直前にお店で買ってきていました。(そもそも保存の温度に気を使う必要があるので)冬だったら室温でもちょうどよい温度になるのでは?と思い、
今の室温がどのワインの温度ぐらいかわかるようにLEDを光らせてみました。ソースのなかに温度帯を細かく書いてますが、
大体でやってみてます。#ソース
“`javascript
const Obniz = require(‘obniz’);
const obniz = new Obniz(‘obniz_id
【Node.js Express】Passport.jsを用いて認証機能を実装する。(passportLocalMongooseをプラグイン)
※当方駆け出しエンジニアのため、間違っていることも多々あると思いますので、ご了承ください。また、間違いに気付いた方はご一報いただけると幸いです。
###要件
– pasport.jsを用いたパスワード認証を作成する。
– 認証ストラテジにはpassportLocalMongooseをプラグインで使用。
– 入力する値はname email password
– 認証(ログイン、サインアップ)以外のページはexpressデフォルトのホームページ(“/”)のみ。(そのページに認証をかける。)###アプリケーションに必要なパッケージをインストールする。
前提
・ express-generatorで雛形を作成済。
・ mongooseを用いてmongodbと接続完了。
・ package.json↓“`package.json
{
“name”: “passport_app”,
“version”: “0.0.0”,
“private”: true,
“scripts”: {
“start”: “nodemon ./bin/www”
},
node.js上のpuppeteerライブラリでHTML表の全行の要素をスクレイピングする
## ターゲット
スクレイピング対象のターゲットHTMLは以下のようなWebページです。あるプロジェクトのメンバー一覧です。![スクリーンショット 2021-01-04 0.08.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124810/1e9ed814-4b0d-6799-be9c-7f10188138ce.png)
## 結論
HTML表の行数を求めるには、行を表すアイテムセレクター **#content > center > table > tbody > tr** をブラウザの **page** オブジェクトの **$$()** メソッドに指定します。そうしてメソッドの戻り値の **length** プロパティがHTML表の行数となります。
“`JavaScript:HTML表の行数を求める
let numOfAccount =
( await page.$$( ‘#content > center > table > tbody > tr’ ) ).len
Raspberry Pi用node.jsでゲームパッド入力をキーボード/マウス入力に変換する
# 概要
Raspberry Piでゲームパッドの入力をキーボードやマウスの入力に変換するソフトは今の所無いようなので、node.jsでさくっと作ってみた。
(Intel/AMD製CPU用の)Linux・Windows・MacにはGUIで設定できる同様のソフトが存在するので素直にそっちを使ったほうがいいです。
# インストール
node.js及び、joystick・robotjsモジュールをインストールする必要があります。
また、robotjsをインストールするためにlibx11-devとlibxtst-devもインストールする必要があるようです([参考](https://qiita.com/n0bisuke/items/2075ab1c72e59ac74e12))“`sh
sudo apt install npm libx11-dev libxtst-dev
npm install joystick robotjs –save-dev
“`# スクリプト
joystickモジュールでゲームパッドの入力を受け取ってその結果を元にrobotjsモジュールを利用して
[Node.js] 新規アプリケーションの製作方法
#環境構築をする
1. nodebrewをインストールする
2. Node.jsをインストールする詳しくは以下でまとめています。
https://qiita.com/momo1010/items/dab9c70bfe84a78f23e2#好きな場所にアプリケーション用のディレクトリを作成する
アプリケーション用のディレクトリの作成と移動のコマンドを実行します。“`
$ mkdir sample
$ cd sample
“`#エディタを起動して先程作成したフォルダを開く
今回エディタは `Visual Studio Code` を使用します。
`Open Folder…` から先程作成したフォルダを選択します。#パッケージをインストールする
以下のコマンドを実行すると、 `npm` の設定ファイルである `package.json` が生成されます。`package.json` には、 npmパッケージの設定情報などが書き込まれています。“`
$ npm init –yes
“`次に、npmパッケージのインストールをします。今回は、 `expre
【Robocode】JavaScriptを勉強しながら戦車ゲームを攻略していく その1
#はじめに
前回記事で構築したRobocodeを遊びながら攻略していきます。
https://qiita.com/abemaki/items/54712e50e4a4a25c229bゲームを起動すると以下のような画面が出てきます。
初期段階でもステージ0であれば、五分五分の戦いです。
今回は軽く触りながら、ステージ0での勝率を高めていきたいと思います。反響があればGithubに改良版をアップしたり続編を書いてみようかな。
**画面イメージと画面の見方**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/ecf63738-d0a2-e509-24ef-358b37fd3f35.png)#ソースコードを理解する
##公式の説明を読む前にちょっとだけソースコードを見ていきます
ソースコードを見ていくと
boss-*.jsといたファイルとmyrobot.jsといったファイルがあるのがわかります。
myrobot.jsは自機で、boss-*.jsは敵機を表してい
javascriptによる並列処理
## 概要
普段javascriptを書いているとよく使う非同期処理(Promise)だが、言語仕様上(
シングルスレッドのため)非同期処理は処理の順番を変えているだけで厳密には同期処理のようだった。ざっくり図
“`
同期処理
実行→結果→実行→結果…非同期処理
実行→実行→結果→結果…並列処理
実行→結果…
実行→結果…
“`よくよく調べていると`Worker`オブジェクトを使用すれば並列処理ができるみたいなので試してみた
**Document**
– [Docs Worker](https://developer.mozilla.org/ja/docs/Web/API/Worker)## ブラウサでの使用
※メインスレッド以外では、domの更新などができない
“`index.js
var worker = new Worker(“./greeting-worker.js”);// データが送られてきたら発火
worker.onmessage = function (message) {
console.log(messa
Node.jsのプロファイリングを試してみる
PM2のプロファイリング周りの調査結果とNode.jsでプロファイリングを行ってみた結果です。([PM2のinstancesの値の変更時の確認方法 – Qiita](https://qiita.com/kitanote/items/68087766e60dc1072b3b)の続き)
## PM2 Pricingについて
|PM2 |PM2 |PM2 Plus |PM2 Enteprise |
|—|—|—|—|
|ゼロダウンタイムリロード |✅ |✅ |✅ |
|ターミナルベースのモニタリング(pm2 monit) |✅ |✅ |✅ |
|… |… |… |… |
|CPUプロファイリング | | |✅ |[PM2 – Pricing](https://pm2.io/pricing)
## PM2 PlusでもCPUプロファイリング可能?
PM2 PlusでもCPUプロファイリングができるみたいなドキュメントが存在しますが、Enterprise限定のようです。
[Memory & CPU Profiling
Node.jsを勉強する② – テキストファイルの作成方法
##はじめに
前回は、[Node.jsの環境構築](https://qiita.com/arata0520/items/d3afcc76a36f1da83819)についてまとめました。今回はテキストファイルの作成方法を記事にします。
##教材
Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/##Jsファイルの作成とファイルモジュールの導入
まずは、コードを書くファイルを作成します。今回はnodeapp.jsと名付けます。
次に、app.jsの中にrequireを用いファイルを操作するモジュールを導入します。
constを用いて変数fsを定義し、モジュールの中身を代入します。“`javascript:nodeapp.js
const fs = require(‘fs’)
“`
##テキストファイルを作成する
次に、”writeFileSync”メソッドを用いて、テキストファ
Node.jsを勉強する① – 開発環境構築
##はじめに
ずっと勉強したいと思っていたNode.js
Udemyの講座で勉強してみました。備忘録として学んだことを自分なりにまとめて記しておきます。
なお、今回は英語の講座でしたが、英語も勉強できて一石二鳥ですね。今回は開発環境構築を記事にします。
##教材
Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/##Node.jsのインストール
公式ホームページ(nodejs.org)に行き、最新のNode.jsをダウンロードします
![Node-js.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360425/d8afc971-7f73-cc59-0081-439531989c8b.png)カスタマイズする必要はないので、インストーラーは”Next”をclickして進め、インストール
ElectronアプリでKeycloakと連携(3. ログイン機能導入編)
#背景
今回は、前回作成したelectronのアプリに認証機能を追加してみる。
https://qiita.com/yusuke-ka/items/a4767c511f03b6083afc今回も前回に引き続きAuth0のブログを参考にしてみる。
https://auth0.com/blog/securing-electron-applications-with-openid-connect-and-oauth-2/※(注意)自学習を目的として書いています。この記事に記載の内容は、あくまで自分(素人)の解釈となります。
# electronアプリへの認証機能追加
前回作成したシンプルなelectronアプリにログイン機能、ログアウト機能を追加してみる。
## ログイン機能の実装
まずは、単純にkeycloakのログイン画面にリダイレクトして、認証するところまでを実装してみる。
前回作ったmainフォルダの下に今度はauth-process.jsというファイルを置く。
“`main/auth-process.js
const {BrowserWindow} = re