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

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

仮想環境でNode.jsを始めた

#はじめに
この記事はなんとなくJSとかを勉強している学生がメモ代わりに記録しているものです。内容は期待しないでください。

#仮想環境でコンソールを起動する
今回はUbuntuで行うのでiTerm2で仮想環境を起動するよ。

起動したところで
1.Virtual Box(バーチャルボックス)
2.Vagrant(ベイグラント)
という2つのソフトウェアを使った仮想環境でUbuntuを使用します。
cd ~/vagrant/ubuntu
vagrant up
vagrant ssh

Ubuntuがインストールされたディレクトリに移動。vagrant upは仮想的なPCにインストールされたUbuntuを起動するコマンドで,vagrant sshはVagrantの仮想マシンがセットされている状態でSSHに接続します。

#Node.jsを使ってみる
コンソールに
“`node
“`
と入力すると,コンソールがjsを受け付ける状態になります。これはREPLという状態です。
今回実装するディレクトリに保存しているnode.jsのファイルを以下に記述します。
“`’use strict’

元記事を表示

Herokuへのアップロードでつまづいた時の対処法 その② Node.js + MongoDB

先日記述した「Herokuへのアップロードでつまづいた時の対処法」の後編になります。なお、タイトル通りMongoDBを使っていない場合には、この後編を参考にする必要はありません。前編に引き続き、これを見た未来の困っている人たちの手助けになれば嬉しいです。それでは順を追って説明していきます。

前編で記述したprocfileの作成方法や.gitignoreの作成方法をすでに行っている前提で話していきます。

1:HerokuでMongoDBのアドオンを使用するためには、Herokuでクレジットカード情報を登録する必要があります。ただし、お金は一切かかりませんし、メルマガなどの勧誘もありません。登録方法はこちらの方の記事を参考にしてみてください。?https://wp.developapp.net/?p=5250
大体4-5分でできます。

2:登録が完了したらHeroku上の自分のアプリケーション画面に移動します。?https://dashboard.heroku.com/apps

3:今回Herokuへアップロードするアプリを選択しクリックする。

4:画面の上部に表示されて

元記事を表示

knexでdistinct onする方法

>特定のカラムだけdistinctしてーーー!
そしてdistinctしたカラム以外も取得してーーーー!

って時、極稀にありますよね。
RDBに多少でも触れる人生なら一生に3回くらいは遭遇するはずです。

エンジニア歴10年超えにしてやっと実運用ProductでPostgresデビューした私にも、人生で3回遭遇するうちの第一回目が来ました。

knexのドキュメント見てもですね。
「distinct on」サポートしてないんですよ。

http://knexjs.org/

distinct on なにそれ?おいしいの?くらいの勢いでカレーにスルーされてるんです。
Postgresの方言らしいので仕方ないのかな。。

もうこういったRDB固有の方言は、raw使うしか無いようですロー

## knexでdistinct on するには”raw”を使う
“`
knex.select(knex.raw(‘DISTINCT ON (target_colum) target_colum1, other_colum2, other_colum2)
“`

こうすると、target_colu

元記事を表示

amazon-qldb-driver-nodejsからQLDBを使う②(書き込み、検索編)

前回の記事はこちらです
https://qiita.com/shushutochako/items/bbb3ec5f721c57949ea7

## 概要

今回はテーブルへのデータの追加、更新と検索を試してみたいと思います。
AWSの認証などについては前回の記事を参考にして下さい。

また、本記事は公式チュートリアルの内容を参考にしています。
https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.nodejs.tutorial.html

## moduleのバージョン

今回使用した「amazon-qldb-driver-nodejs」自体や他に必要なモジュールのバージョンは以下のとおりです。
前回の記事の時点ではpreviewでしたが、2020/4のはじめにPre-release版がリリースされたようですね!
正式なリリースも近いのではないでしょうか。

– amazon-qldb-driver-nodejs
– v1.0.0-rc.1
– aws-sdk
– 2.663.0
– io

元記事を表示

【メモ】Raspberry Pi に node をインストール

* Raspberry Pi Model B Plus Rev 1.2

# tj/n をインストール

* [tj/n](https://github.com/tj/n)

“`
$ curl -L https://git.io/n-install | bash
“`

元記事を表示

【Node.js】nvmの導入

# nvmとは?
Node.jsのバージョン管理ツールです。
Node.jsのバージョンによっては互換性がなかったりする為、nvmで管理する。

# 環境
– macOS Catalina
– zsh

# インストール
[公式ドキュメント](https://github.com/nvm-sh/nvm/blob/master/README.md#installing-and-updating)に従いながらインストールする。
以下のコマンドを実行する。

“`zsh
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
“`

**.zshrc**に以下の文を追記しターミナルを再起動すると、nvmコマンドが使えるようになる。

“`zsh
export NVM_DIR=”$HOME/.nvm”
[ -s “$NVM_DIR/nvm.sh” ] && . “$NVM_DIR/nvm.sh” # This loads nvm
“`

バージョンを確認してみる。

“`zs

元記事を表示

如何先开始写出一个程序

#谈谈写出一个方案。
如果你最近一直在做程序,而你认为
我在初中时接触的第一个节目,是我在初中时接触的第一个节目
是N80-BASIC。
我还记得,但下面这句话完全在我的脑海里。

“`N88-BASIC
N88-BASIC

WIDTH 80,25.
CONSOLE 0,25,0,1
LOCATE 0,0
PRINT “HELLO WORLD”
宽80,25
“`

当然,那时,我只是打出了这样的代码。
解释器只显示了一个无机游标。
我找不到任何帮助。

可以这么说,写出一个程序是
今天还是这个样子,他真的是个无精打采的家伙。

那么,这就是今天的话题。
这要从一种新的编程语言、开发环境说起。
所以,节目先生,好像是在问候。
问候是很重要的。

不仅仅是在编程世界,在现实世界中也是如此。
如果一个问候语被理解了,对方就会以某种方式和你交谈。

哪怕你只是在不了解情况的情况下走到他们面前,也是如此。
那你会得到的,是一脸疑惑的表情,或者是一种
最坏的情况下,他们只是送你回去走人。

#过去的故事D,扯远了一点
我第一次去大学毕业旅行的时候,在美国的机场转机。
我把车票放在了我的行李

元記事を表示

How do I start writing out my program?

#Talk about writing out a program.

Talk about writing out my first program.
When I was a junior high school student, the first program I touched was N80-BASIC.
I won’t forget the starting cord, I still remember it, the following sentence was completely in my head.

“`Z80
N88-BASIC

WIDTH 80,25.
CONSOLE 0,25,0,1
LOCATE 0,0
PRINT “HELLO WORLD”
“`

Of course, in the old days of computer screens, there was nothing but a useless, inorganic cursor.

Writing out programs is still the same, and comp

元記事を表示

Puppeteer on Lambda (Node.js 12.x) で日本語ページのキャプチャを取る方法 簡単

## やりたいこと
Lambda上でPuppeteerを動かしてキャプチャを取るとき、日本語フォントを正しく表示させる。
(デフォルトではLambdaに日本語フォントが入っていないため、何もしないと日本語がすべて豆腐になってしまうのだ。)

## 環境
* AWS Lambda
* Node.js 12.x
* ローカル
* Windows10
* Node.js v12.16.2
* npm 6.14.4

## やり方(ざっくり)
* Lambda Layerに日本語フォントをzip化してアップロードする。
* Lambda関数にそのLayerを追加する。
* Lambda関数内でLayerのフォントファイルを参照できるようにindex.jsで`process.env[‘HOME’] = “/opt”;`を定義する。

## やり方(詳細)

“`shell:ローカルのディレクトリ構成
puppeteer_sample
├─ modules # Layerに登録するnpmモジュール群
│ ├─ node_modules
│ └─ packa

元記事を表示

Herokuへのアップロードでつまづいた時の対処法 Node.js + MongoDB

自分の経験をここに記述します。

【経緯】先日、EJS, CSS, JavaScript, MongoDB, Nodeを使って作成したWebsiteをHerokuにアップロードしようと試みた時、正常にアップロードできず、丸2日間の時間を犠牲にした上でようやく問題解決までに至りました。ここで記載することがいつかこれを見た未来の困っている方々への手助けになればと思います。

【方法】ステップに分けて説明していきます。MongoDBを使用している場合には、別の記事でその追加で必要な方法を記述します。

1:Command Line(Hyper Terminal)がアップロードしようとしているファイルのパスを正しく選択しているか確認する。

2:Command Line(Hyper Terminal)からHerokuへとログインする。
コマンド:$heroku login 

3:GitをInitializeし、add、commitする。以下順々にコマンドを実行する。
コマンド:$git init  

コマンド:$git add .

コマンド:$git commit -m “sample

元記事を表示

Node.jsでお天気を取得してみよう

#はじめに
`OpenWeatherMap API`からお天気情報を取得しようという試みです。
色々な方が、さまざまな言語で同様の記事を上げています。
私は、勉強真っ最中の`Node.js`でやってみようと思いました。
[(Node.jsの導入はこちら)][node]

#環境
`wsl`の環境です。

“`
Editor: VSCode
Shell : bash version 4.4.20
Ubuntu: 18.04.4 LTS
node : v10.14.2
“`

#1.APIの取得
[OpenWeatherMap][owm]の公式サイトで無料アカウントを作成後、
表示されるAPIキーを控えておいてください。
APIキー取得後は少し時間をおいてか試したほうがいいと思います。
公式もそういってますし。

#2.プロジェクトを作成
##1.任意の位置(緯度経度)のお天気情報を取得
とりあえず福岡市にしてみました。

“`js:app.js
‘use strict’;

const http = require(‘http’);
const MY_WEATHER_APIKEY

元記事を表示

Herokuを使ってみた

#はじめに
適当にJSとかwebアプリケーションを勉強している学生が記録するために使っているので,あまり内容は期待しないでください。とりあえず今回はHTTPサーバをHerokuを使って公開してみます。

#1.Herokuとは
webサービスを動かせるプラットフォームを提供してるサービスらしい。小規模なら無料で使えるとのこと。

#2.Herokuのアカウント作成
とりあえずアカウント作成
https://jp.heroku.com/
でいろいろ個人情報を流出してきます。

ここで開発言語を選択するらしいですがまぁJS程度しかやってないのでNode.js一択ですね。

ドラえもんが引っかかってしまう私はロボットではありませんチャレンジをクリアしてメールアドレス認証。パスワード設定したら登録完了です。いやぁ非常にスムーズ,毎回どこかでつまづくんじゃないかと冷や冷やしながら登録してます。

#3.Heroku CLIをインストール
順番がゴチャゴチャしてきましたがherokuコマンドを利用しなきゃと思ったらHeroku CLIが必要らしい。まぁあるあるというか常識なのだろう。今回はUbun

元記事を表示

Dockerでの環境構築(Rails)超入門1

## はじめに
Ruby on Rails初心者です。今回はDockerを使ったRailsの環境構築の初歩を勉強のために備忘録として残したいと思います。
## 前提
DockerでRailsの開発環境を行う
※あくまで開発環境を構築するためだけの超入門であるため、DBや細かい設定等は次回以降投稿する

## 手順
Dockerはインストールしていることが前提
1. Dockerfile, docker-compose.yamlの作成
2. Dockerのコンテナを起動
3. Railsの設定
4. Node.jsの設定
5. Yarnのインストール

## 実践
1. Dockerfile, docker-compose.yamlの作成

・ディレクトリを作成(今回はDocker/practice)

“`
$ cd Desktop
$ mkdir docker
$ mkdir practice
$ cd practice
“`

・Docker hubで「ruby」を検索し、バージョンを確認

・Dockerfile作成

“`
FROM ruby:

元記事を表示

リングフィットアドベンチャーをガチるためにサーバレスアプリケーションを作る

# TL;DR

[リングフィットアドベンチャー](https://www.nintendo.co.jp/ring/) の称号をコンプするための進捗管理を、以下の技術要素を詰め込んで自動で行えるようにしたお話です。

– serverless framework
– AWS Lambda
– Amazon S3
– Amazon DynamoDB
– Amazon API Gateway
– Google Cloud Vision
– Twitter API
– Googleスプレッドシート
– Glide

# ご注意

– **エモ多め、技術の詳細少なめ**
– 画像が多いです(ここを読んでる時点で手遅れだと思いますが)
– 掲載しているコードは実運用しているものとは異なり、参考程度の内容に編集しています
– 記事内のリングフィットアドベンチャーに関する画像は、任天堂公式より転載、またはゲーム画面のスクリーンショットを用いています

# リングフィットアドベンチャー is 何

慢性的な運動不足に陥るか、筋肉だけは裏切らないと狂信しているかの二極化しがちなITエンジニアの方々はご存

元記事を表示

ImageMagickをJSから呼び出す

#概要
ImageMagickを使って画像生成をしようと思っていて、簡単な処理ならターミナル等でコマンドを打って実行するのだが複数の画像を順番に合成するなどシーケンシャルな処理をする場合にそれだとしんどいので何かスクリプトを使いたいなと思って検討した結果JavaScript(以下JS)にしようと思い検討理由と実行記録を残しておきました。

#なぜJSにしたのか
本当に簡単な処理ならShellscriptでもいいかなと思いますが今回はif文もいくつかケースがわかれたりJSONの読み込み等が発生するため除外。もちろんShellscriptでもできますが不慣れだし大抵の人にとっては見にくいケースもあるので。
次にPythonを検討した。PythonMagickなどのライブラリが用意されていて使いやすいということもあるし最近は画像処理で多く使われていたり人気の言語だったりするので。
迷った結果最終的には[Electron](https://www.electronjs.org/)でGUI作る必要があるかもしれないというのがあったのでJSにしました。

#実行環境
* macOS Mojave

元記事を表示

Google Analytics, Google SpreadSheet, Big Query, Google Ad ManagerのAPIをNode.jsで触ってみる

# はじめに

データの可視化を行う当たってGoogleの各種APIを触ってみましたが、最初は認証の仕方とか基本的な書き方とかでつまづく所もあるので、ハンズオンとして触り方をなるべくわかりやすく紹介したいと思います。
今回紹介するのは

– Google Analyticsのレポート
– Google SpreadSheet
– Big Query
– Google Ad Managerのレポート

のAPIになります。
サンプルコードは[こちら](https://github.com/hedrall/google-data-api-samples)に上げています。

# Google Analytics の レポートAPI

## 概要

– GAのAPIドキュメントを検索すると、Reporting API v4 と Core Reporting API が出てきますが、最新は Reporting API v4 です。
– https://developers.google.com/analytics/devguides/reporting/core/v4?hl=ja
– ガイド

元記事を表示

タイムリーに is-promise 2.2.0 破損に巻き込まれた話

Node.jsの環境をSSDに引越しして動作を確認していたところ、`yo`がインストールできない・動かないという謎の現象に見舞われた。実は自分の環境が悪いのではなく、タイムリーに`yo`が依存するたった1行の関数を提供する`is-promise`が壊れた直後にインストールしたことが原因と分かった。

別のモジュールではNode.jsのバージョンが上がって動かなくなるケースでは対応が遅れることがあったので、今回はすぐ処置されてラッキーだった。(知らないだけで日常的に起きているのかもしれないが)

# 起きた現象
`yo`をインストールすると、ちゃんと動くかをチェックするYeoman Doctorが実行される。ここで、`yo –version`でエラーが起きてしまっている。この後`yo`を実行しても、同じエラーで起動すらしない状況となった。

“`
> yo@3.1.1 postinstall K:\nodejs\npm_global\node_modules\yo
> yodoctor

Yeoman Doctor
Running sanity checks on your sys

元記事を表示

ubuntu18.04にnode12系とnpm6系をインストールする

# 実行環境

– OS:ubuntu 18.04

# 前提条件

– 特に無し

# 実施手順

[公式のREADME.md](https://github.com/nodesource/distributions) に従ってコマンドを実行するだけです。

node12系を指定し、インストール。

“`
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash –
sudo apt-get install -y nodejs
“`

以上です。

# 結果確認

Node.js のバージョン

“`
$ node -v
v12.16.2
“`

npm のバージョン

“`
$ npm -v
6.14.4
“`

# まとめ

[公式のREADME.md](https://github.com/nodesource/distributions) の手順をそのまま実行しただけでした。

元記事を表示

代替手段の探し方

新しいものを勉強する時や久しぶりに触るミドルウェアとかアプリケーションについて、もっといいものあるんじゃないかなって時にどうしてます?

自分は
`アプリケーション名 alternative`
って検索してみてます。

例)
`nvm alternative`
node.jsのversion managerの代替アプリを探した場合。
[nve](https://github.com/ehmicky/nve)って製品が見つかりました。

あとは出てきたものと、元の製品とあわせて
`nvm nve`
とか調べてみたりします。

元記事を表示

HerokuのPostgreSQLにSSL接続する

  
短いですが備忘録として残しておきます!

## エラー

Node.jsのORM(Object Relation Mapping)であるSequelizeを利用して、
ローカルからHerokuのPostgreSQLに接続する際に下記のエラーが出て接続できませんでした。。

“`
error: no pg_hba.conf entry for host “DB_HOST”, user “DB_USER”, database “DB”, SSL off
“`
これはSSL接続がオフになっているためオプションでオンにしてあげる必要があります。

## 解決

“`javascript
const Sequelize = require(‘sequelize’)
const sequelize = new Sequelize(
‘postgres://~~’, // DB情報
{
// DBにSSL接続する
dialectOptions: {
ssl: true,
},
}
)
“`

上記のようにSSL接続をtrueとすることで解

元記事を表示

OTHERカテゴリの最新記事