Node.js関連のことを調べてみた2019年10月31日

Node.js関連のことを調べてみた2019年10月31日

cradle.js (0.7.1) が動かなかった話

cradle使おうとしたんです。
[node.jsから驚くほど簡単に使えるNoSQLサーバ Couchbase(CouchDB)を試す!](http://wise9.jp/archives/4291)

を参考に、expressのバージョンが上がってるからちょこちょこ修正しつつ、さてDB編集だと言った時にこんなエラーが。

“`
C:\home\minori\program\js\app4\node_modules\cradle\lib\cradle.js:316
if (! o.__lookupGetter__(attr)) {
^

TypeError: o.__lookupGetter__ is not a function
at C:\home\minori\program\js\app4\node_modules\cradle\lib\cradle.js:316:21
at Array.forEach ()
at C:\home\minori\program\js\

元記事を表示

express がいつのまにかバージョンアップしてた

なので、今新しくexpress のシステム作ろうとして WEB に出回っているコードをコピペしても **全然** 動いてくれません。

https://expressjs.com/ja/guide/migrating-4.html

とりあえずこれを参照すればなんとかなると思います。

元記事を表示

Typescript: X is Declared, But Never Usedの解決方法メモ

## X is Declared, But Never Usedというエラーが出ることがある。

以下のような例だ。

“`ts
export const onChange = (val: string, index: number) => {
index + 1
}

// val is Declared, But Never Used
“`

## 回避するには、変数の代わりに空のオブジェクトを使えば良い。

“`ts
export const onChange = ({}, index: number) => {
index + 1
}
“`

エラーが消えるはずだ。

この方法は可読性を高めてくれるので、気に入った。

参考
https://www.triplet.fi/blog/typescript-getting-rid-of-error-x-is-declared-but-never-used/

元記事を表示

Nuxt.jsチートシート

関連:
– [Vue.jsチートシート(基礎編)](https://qiita.com/morrr/items/289b6e7ac82e969a7a58)
– [Vue.jsチートシート(コンポーネントと構成編)](https://qiita.com/morrr/items/2642135a927d6a3e7584)

Vueチートシートに引き続き公式チュートリアルの抜粋です。

参照
————————————————————
– [Nuxt.js日本語公式](https://ja.nuxtjs.org)
– [ガイド](https://ja.nuxtjs.org/guide)

概要
————————————————————
– Nuxt.js = Vue.jsおよびそのプラグインに基づくサーバサイドフレームワーク
– NuxtはVue.js, vue-router, vuex, Vue Server Ren

元記事を表示

2019年 #HTML #PDF 変換の情勢とは? ( phantomjs -> wkhtmlpdf -> headless Chrome + #node + puppeteer )

https://www.paperplane.app/blog/modern-html-to-pdf-conversion-2019/

# 古い手法とは

PhantomJSのかわりにwkhtmltopdfが重宝されてきたけどモダンブラウザの仕組み、 HTML5やjsに対応しきれてないよーって書かれてる気がする。

>The traditional approaches
>Until 2017, there were two common ways to convert HTML to PDF. The first was to use wkhtmltopdf — an open source command line tool specifically designed for the task. A second alternative was PhantomJS, an open source “headless” web browser which can be controlled with JavaScript.

>Although these tools have s

元記事を表示

Node.js(express)を用いたハッシュ化の仕方

## はじめに
 会員登録の際に、ユーザーから送られてきたパスワードをハッシュ化する方法について解説します。
また、ログインの際にユーザーが入力したパスワードとハッシュ化されたパスワードが一致しているのか確認する必要があると思います。それについても解説します。

## 実装
### 事前準備
 まずはNodeにハッシュ化するためのモジュールをインストールします。

“`
npm install –save bcrypt -s
“`
### パスワードをハッシュ化する

“`hash.js
const bcrypt = require(‘bcrypt’);
//モジュールの読み込み
const password = “hoge”;
let hashed_password = bcrypt.hashSync(password, 10);
“`
以上でパスワードのハッシュ化が行えます。

### ハッシュ化された値とパスワードの値の一致の確認

“`hash.js
bcrypt.compareSync(“hoge”, hashed_password) // =>ture
“`

元記事を表示

CentOSにnvmインストールしたnodeが再起動時には扱えなくなる現象の解決

#概要
普段はReact NativeでIOSアプリを開発してます
今回は、CentOS内でnvmでインストールしたnodeコマンド利用ができなくなった現象を解決した流れのメモを共有します

“`
[vagrant@localhost ~]$ node
node: /lib64/libc.so.6: version `GLIBC_2.16′ not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17′ not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by node)
[vagrant@localhost ~]$
“`
上記のようなエラーが吐かれnodeが利用できません

#解決策
nvmでインストールしたnodeをデフォルトでの利用をさせるようにします

“`
[vagrant@localhost ~]$ which node
/usr/bin/node

元記事を表示

What’s “Node.js” ?

よく使い方を忘れるので、必要な時にサッと読み返せるように超完結にまとめておきます。

>関連記事
>[What’s “Git” ?](https://qiita.com/oekaki-hoho-ron/items/afa6786f2f845939a00e)
>[What’s “nvm” ?](https://qiita.com/oekaki-hoho-ron/items/1d00183f96e64d817824)
>[What’s “Node.js” ?](https://qiita.com/oekaki-hoho-ron/items/ded73f301c7e749deb9f)
>[What’s “npm” ?](https://qiita.com/oekaki-hoho-ron/items/b815125dca07751b73e9)
>[What’s “React” ?](https://qiita.com/oekaki-hoho-ron/items/104f5f2c39a6b83e8238)
>[What’s “Next.js” ?](https://qiita.com/oekak

元記事を表示

【Node.js+Express+PostgreSQL】async/await使ってPostgreSQLに接続

# はじめに
本記事では、コールバックではなく、“async/await“を使ってExpressでPostgreSQLに接続する方法をまとめる。
“async/await“部分以外は、以下の記事を参考にしていただければ。

* [【Node.js+Express+PostgreSQL】ExpressにPostgreSQLを導入](https://qiita.com/c6tower/items/c6fc18e14229dbf2f53a)

## 環境
* Windows 10
* Express 4.17.1
* PostgreSQL 11.3
* pg 7.12.1

## サンプルコード
“`js:sever.js
const express = require(“express”);
const app = express();
const pg = require(‘pg’);

const pool = pg.Pool({
host: hoge,
database: hogehoge,
user: huga,
port: 5432,
passwor

元記事を表示

HTML to PDF 変換コマンド・ライブラリの比較 : 結論 headless Chrome の直接利用が最強では? ( #HTML #PDF #node #GoogleChrome )

# 環境

Mac

# Web: 変換元

https://yahoo.com を変換してみる。

![image](https://user-images.githubusercontent.com/13635059/67829773-b45a0d00-fb1b-11e9-865d-fd8489154d08.png)
![image](https://user-images.githubusercontent.com/13635059/67829777-bae88480-fb1b-11e9-925a-e14091f63c30.png)

# Chrome の headless モード

OSのGoogleChromeを直接利用する。

>ヘッドレス Chrome ことはじめ
https://developers.google.com/web/updates/2017/04/headless-chrome

“`
alias chrome=”/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome”

chrom

元記事を表示

Docker & Node.js & Socket.io & NGINXでよくあるエラー

# エラー内容
タイトルの構成でアプリケーションを作っていた時に以下のエラーが出てつまずいた

`socket io failed: Error during WebSocket handshake: Unexpected response code: 400`

# 何故起きたか

WebSocket接続のハンドシェイク時に `HTTP/1.1 101 (Switching Procotols)` というステータスコードと `Hop-by-Hopヘッダ` を使用してWebSocket通信への切り替えを行う仕様に `Nginx v1.3.13` から変更されたらしい。

>Since version 1.3.13, nginx implements special mode of operation that allows setting up a tunnel between a client and proxied server if the proxied server returned a response with the code 101 (Switching Proto

元記事を表示

インスタンスが起動したら自動的にNode.jsアプリが起動するようにする

# Node.jsアプリの自動起動をしたい

## はじめに

AWSでインスタンスを再起動するたびにアプリケーションを再起動するのが非常に面倒だったため、インスタンスが起動したら自動的にアプリケーションが起動するようにしました。

今回はPM2というプロセスマネージャーを利用してアプリの自動起動を行う方法を、作業メモを兼ねて紹介します。

## PM2とは

PM2はデーモンプロセスマネージャーです。

プロセスをデーモン化しておらず、シェルを抜けたらアプリケーションが終了していた、といった経験はみなさんあるのではないでしょうか。

PM2を利用するとプロセスをデーモン化することで、アプリケーションを起動した状態に保つことができます。

そのため、Node.jsアプリケーションの本番運用などに利用されているようです。

公式サイト: [PM2](https://pm2.keymetrics.io/)

## 導入

下記コマンドでインストールできます。

Node.jsやnpmは事前に[nvm](https://github.com/nvm-sh/nvm)などを利用してインストー

元記事を表示

Electronで作業中に使えるアプリを作っていたら残像が残った話

#症状
displayをnoneとした要素の影がついたままになって残像が残ってしまっていた(Macのみの症状)

“`javascript
dom.style.display=”none”;
“`
としましたが、

スクリーンショット 2019-10-30 12.18.09.png
↓dislpay:none;
スクリーンショット 2019-10-30 12.18.16.png
**残像が残っている!**

これは困りましたね(困惑)

調べて

元記事を表示

Node.jsとMeCabで漢字・ひらがな・カタカナ辞書順ソート

Node.js, MeCabを使用した日本語の辞書順ソート用compare関数を実装しました。
漢字、ひらがな、カタカナに対応しています。

`String#localeCompare()` は概ね辞書順に動きますが、濁音半濁音を無視します。
これを補完し、漢字の読みにも対応しました。

コード全体はこちらにおいてあります。

https://gist.github.com/sujoyu/b93e83596e6de9142933ce7cc9cd711b

#必須環境

– Node.js
– MeCab

“`
$ npm install is-windows encoding-japanese –save
“`

# 使い方
“`js
const Comparator = require(‘./japanese-comparator’)

const list = [‘b’, ‘a’, ‘2’, ‘1’, ‘+’, ‘-‘, ‘-2’, ‘あがき’, ‘悪’, ‘赤城’]
// get関数は引数なしでも動作しますが、リストを渡してキャッシュを作ったほうが早くなります
cons

元記事を表示

EC2にyumでnodejsをインストールしようとしたらできなかった話

#はじめに
右も左も分からない状態で、AWSにRailsアプリをデプロイする過程で躓いたときの話
##epel(?)レポジトリが見つからないと言われエラーになる。
リポジトリが見つからないと言われる。

“`:実際のコード
[tatsuki@ip-10-0-0-85 ~]$ sudo yum install nodejs npm –enablerepo=epel
[sudo] tatsuki のパスワード:
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd

Error getting repository data for epel, repository not found
“`
##epelリポジトリをインストール
epelリポジトリインストールについて調べ、以下を実行。

“`
[tatsuki@ip-10-0-0-85 ~]$ yum -y install epel-release
読み込んだプラグイン:extras_suggestions, langpacks, priorities

元記事を表示

1行でコールバックをawaitする簡易Promisify

`Util`を`require`するほどでもないときに使うイディオム。

“`javascript
const buffer = await new Promise((ok, ng) => fs.readFile(path, (err, res) => err ? ng(err) : ok(res)))
“`

[こちら](https://qiita.com/suin/items/99aa8641d06b5f819656)を見て反射的にアウトプット^^;

`~Sync`使えよって話ですが非同期に統一したいもので。

元記事を表示

Spotify Web API を Node.js で弄ってみる

# Spotify Web API を Node.js で弄ってみる
Spotify に Web API があるのを知ったので node.js で試してみた手順まとめ。

## Web API Tutorial
[Web API Tutorial](https://developer.spotify.com/documentation/web-api/quick-start/) を参考にすすめていく事にします。

### Dashboard を有効にする。
[Dashboard](https://developer.spotify.com/dashboard) にアクセスして Spotify アカウントでログインして Dashboard を有効にする。下のような画面が表示されるはず。
スクリーンショット 2019-10-30 9.08.08.pngElectronインストール for Ubuntu18

Ubuntu18 PCへのElectron環境インストール手順とサンプルアプリの実行方法をまとめています。

## Electron環境構築

Node.js等の必要なパッケージ類をインストールします。

““
$ sudo apt install nodejs
$ sudo apt install npm
$ sudo apt install libappindicator1
““

Electron本体(中身はChromium + Node.jsライブラリ群)はグローバルな環境にパスを通してインストールしておきます。

““
$ sudo npm install electron -g
““

## サンプル実行
#### Quick start Electron demo app
よく出てくるElectronのクイックスタートサンプルです。

“`
$ git clone https://github.com/electron/electron-quick-start
$ cd electron-quick-start
$ npm install
$ npm s

元記事を表示

Google Cloud Storageで画像操作したメモ

画像uploadするにはどうすればいいんだろう
いろいろな記事を参考にしてみた
うまくいかない?
ちょっと!よくよく見るとこの記事、[リファレンス](https://googleapis.dev/nodejs/storage/latest/Bucket.html#upload)に書かれてるものとオプション名違ってるじゃん!そりゃ期待通り動かないよ!
ってことがあったので、メモっておきます。

# 前提
– google cloud storage+nodejs
– キーを取得済み ()

# upload
“`js
const {Storage} = require(‘@google-cloud/storage’);
const storage = new Storage({
projectId: ‘hogehoge-project’,
keyFilename: ‘./serviceAccountKey.jso

元記事を表示

PuppeteerでWebスクレイピングしてハマったところをまとめてみた

## 備忘録
`Puppeteer`を使ってWebスクレイピングをやっていた時にハマったことを整理しておく。

### インストール編
`Puppeteer`がそもそも起動しなくて困ったことがあった。

#### puppeteerが動作しない(Ubuntu)
初めてpuppeteerを起動した際にChromiumが立ち上がらなかったことがあった。
ログにhttps://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md にアクセスしてみろと書かれてたのでアクセスしたら、どうやらパッケージをインストールする必要があるとのこと。
端末に以下のパッケージが抜けてないか確認し、必要に応じてインストールする必要があるらしい。

“`
gconf-service
libasound2
libatk1.0-0
libatk-bridge2.0-0
libc6
libcairo2
libcups2
libdbus-1-3
libexpat1
libfontconfig1
libgcc1
libgconf-2-4

元記事を表示

OTHERカテゴリの最新記事