- 投稿日:2020-08-14T21:29:41+09:00
【Node.js mysql】mysql接続 データを取り出す
【ゴール】
mysql接続 データを取り出す
【開発環境】
■ Mac OS catalina
■ Homebrew 2.4.9
■ mysql Ver 8.0.21【実装】
appを作成
*homebrewのインストールが事前に必要です
*mysqlのインストールが事前に必要です
*mysqlのコマンドも合わせて覚えれますmac.terminal// ディレクトリ作成 $ mkdir js $ cd js $ npm init -y $ npm install express $ npm install ejs $ npm isntall mysql $ touch server.js $ touch app.ejs // mysql でDATABASEを作成 $ mysql -u root -p $ mysql> CREATE DATABASE JS; $ use JS; $ CREATE TABLE User (id int auto_incremet, name char(10)); $ INSERT INTO User value (1, tarou);コーディング
①
■ npmのmysqlを読み込み。
■「createCOnnection」で({})内の任意のDBに接続②
■ cosnt sql = データベースへの命令を定数へ
■「query」メソッドで、DBへ命令
■「if(err) throw err;」はエラーがあっても挙動させる
■「err, result」にDBからのデータが格納されていますserver.jsconst express = require('express'); const app = express(); // ① 〜 const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'あなたのsqlのパスワード', database: 'JS' }); // ここまで function views (){ app.set('views', 'views'), app.set('view enigine', 'ejs'); } app.get('/', (req, res) => { // ② 〜 const sql = 'select * from User id = 1'; connection.query(sql, (err, result) => { if(err) throw err; console.log(result); views(); res.render('app', {user: result} ); }) // ここまで② }) app.listen(3000, (req, res) => { console.log('success'); })app.ejs<%= user.id %> <%= user.name %>確認
*localhost 3000接続
mac.terminal$ node app.js success以上
【合わせて読みたい】
■ 【HOMEBREW】 Mac OSのパッケージマネージャーについて node.jsやってたら学んだ事
https://qiita.com/tanaka-yu3/items/65dac47443cc08914a86■【node.js】 node.jsインストール 芋っていたけど、簡単だった件...
JavaScript
https://qiita.com/tanaka-yu3/items/739db5ffed24a8d9ae4b■DBonline
https://www.dbonline.jp/
- 投稿日:2020-08-14T19:26:51+09:00
client_loop: send disconnect: Broken pipeの解決方法
エラー内容
AWSでEC2にターミナルでログインしたまま、
webページを10分くらい見ていると.....
こんなエラーが出てしまった...[ec2-user@~]$ client_loop: send disconnect: Broken pipeしかもちょっとだけフリーズする!!ウザ━━━━(´Д`)━━━━
別にこんなエラー直さなくてもいいがマジでうっとしいので
エラーを直しました( ー̀ωー́ )解決方法
ターミナルでssh接続する場合
ある程度の間、放置しているとタイムアウトにより、sshが切断される仕組みになっているみたい...
ホスト側とクライアント側でsshの設定を変更する必要があるらしい*ホスト側 username@mbp ~ %vi /Users/{PCの名前}/.ssh/config *クライアント側 [root@ip-10-0-10-10 ] vi /etc/ssh/ssh_config *vim画面(どちら側でも同じ) Host github.com IdentityFile ~/.ssh/github User git Host vagrant HostName vagrant *ここから下を追加する Host * ServerAliveInterval 60 TCPKeepAlive yes用語説明
Host *
*全てのホストを指定
ServerAliveInterval 60
*TCPKeepAliveを送信する間隔を60秒に設定
TCPKeepAlive yes
*接続を維持するかどうか最後に
これで解決できたと思います
いやーWindowsのTera termだったらこんな設定いらないのに....
まぁこれでうっとしいエラーとはおさらばです!
お疲れ様でした(´・ω・`)ノオツ㌍♪
- 投稿日:2020-08-14T13:05:27+09:00
macOSのSafariでQiitaにインライン数式を記述すると同一行内に複数数式が存在した場合に勝手に改行される
現象
実際にやってみると以下のようになる。
入力文同一行内に複数の数式があると$eq1$数式の開始点で$eq2$勝手に改行されてしまう同一行内に複数の数式があると
$eq1$数式の開始点で
$eq2$勝手に改行されてしまう検証
検証1
数式を1つにする。
入力文数式がひとつなら$eq1$大丈夫っぽい数式がひとつなら$eq1$大丈夫っぽい
検証2
行を分けてみる。
入力文続きの行に他の数式があると$eq1$どうも やっぱり改行が$eq2$勝手に入ってしまう続きの行に他の数式があると
$eq1$どうも
やっぱり改行が
$eq2$勝手に入ってしまう検証3
空行を追加してみる。
入力文空の行をひとつ挟むと$eq1$これは なぜか大丈夫に$eq2$なるっぽい空の行をひとつ挟むと$eq1$これは
なぜか大丈夫に$eq2$なるっぽい
検証4
divタグで囲ってみる。
入力文<div>divタグで囲むと1行扱いになって$eq1$空行なしでも大丈夫。</div> <div>でもタグ終わりに$eq2$改行が入ってしまう。</div>divタグで囲むと1行扱いになって$eq1$空行なしでも大丈夫。でもタグ終わりに$eq2$改行が入ってしまう。ちなみに
style="display: inline;"を指定してもタグ終わりで改行を防ぐことはできない。検証5
スタイル指定付きのdivタグで囲ってみる。
入力文<div style="display: inline;">スタイルは$eq1$効かないっぽい。</div> <div style="display: inline;">inline指定でもタグ終わりに$eq2$改行が入ってしまう。</div>スタイルは$eq1$効かないっぽい。inline指定でもタグ終わりに$eq2$改行が入ってしまう。以前はスタイル指定が有効だったようだが、今は効かないっぽい。
検証6
spanタグで囲ってみる。
入力文<span>spanタグで囲むと連続行扱いになって$eq1$意味なし。</span> <span>全く効果なく$eq2$改行が入ってしまう。</span>spanタグで囲むと連続行扱いになって
$eq1$意味なし。
全く効果なく
$eq2$改行が入ってしまう。解決策
$\huge{\rm{Google \;Chrome}を使う。}$
入力文同一行内に複数の数式があっても$eq1$数式で$eq2$勝手に改行されない。そう、Chromeならね。同一行内に複数の数式があっても$eq1$数式で$eq2$勝手に改行されない。そう、Chromeならね。
まじで時間かかったけど、Chrome使ったら一瞬で解決した。俺の時間返して。
尾 張 。
- 投稿日:2020-08-14T11:19:24+09:00
iterm2でエンターを押すと^Mと出力されて改行できない
何言ってるかわからねえと思うが、
僕の場合は、itermの窓で、bundle exec rails server -p 3000を実行させてて、コンソールログを眺めてたわけです。
ログの境目をわかりやすくするために処理を実行させる前に、エンターを連打して改行をいれようと思ったら、
^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^Mは?ww
対処法
いったん、rails serverを切って、ターミナル上で
stty saneのコマンドを叩けば解決です。
説明(僕なりの解釈)
何かしらの理由でターミナル上の特殊文字を変更(今回でいうと^M?)されたんだけど、通常であれば変更後、それをデフォルトに戻すはずが何かしらの理由でそれが戻されず、^Mが表示されるようになってしまったのではないかと。
僕の場合容疑者は、rails serverかtmuxのコピーモードのどっちかだと思う・・・w(エンターの挙動が変わりそうなのはコピーモードっぽいので後者かな・・・)
- 投稿日:2020-08-14T00:17:58+09:00
MacでEmacsを使う時のtips
Emacs Mac Port版 emacs-27.1-mac-8.0 を使用しています。
MacOSのキーボードショートカットに合わせる
- Macのアプリケーションには Cut, Copy, Paste, フォントサイズ変更など command キーを使った標準的なショートカットがあるので、Emacsもそれに合わせます。
- command キーを
superにするので、metaは option キーと function キーに割り当てています。(when (equal window-system 'mac) (setq mac-function-modifier 'meta) (setq mac-option-modifier 'meta) (setq mac-command-modifier 'super) (global-set-key (kbd "s-x") 'kill-region) (global-set-key (kbd "s-c") 'kill-ring-save) (global-set-key (kbd "s-v") 'yank) (global-set-key (kbd "s-a") 'mark-whole-buffer) (global-set-key (kbd "s-s") 'save-buffer) (global-set-key (kbd "s-z") 'undo) (global-set-key (kbd "s-+") 'text-scale-adjust) (global-set-key (kbd "s--") 'text-scale-adjust))Finder
- ファイルのアイコンを Emacs にドラッグすると、次のような動作になります。
- Dired mode のバッファにドラッグした場合は、そのファイルを Dired で表示しているディレクトリにコピーします。
- それ以外の場合は、そのファイルを Emacs で開きます。
- Emacs で表示中のファイル(を内包しているフォルダ)を Finder に表示させたい時は、
M-!(shell-command)でopen .を実行します。Mail.app
- Mail.app で表示されているメール(本文だとテキスト選択になるので、ヘッダのところ)を Emacs にドラッグすると、そのメールのメッセージIDが挿入されます。
- それを編集して
(shell-command "open メッセージID")としておけば、行末でC-x C-eを打つとメールを開くことができます。Chrome
Chrome のテキスト入力欄の内容を Emacs で編集できます。(Mac限定ではないですが、ついでに書いておきます)
準備として次の二つが必要です。
- Chrome の拡張機能 Edit with Emacs をインストールする。
- Emacs のパッケージ edit-server をインストールする。
実際に編集する時は次のようにします。
- Edit with Emacs にサイトの読み取り許可を与えます。設定によって、「拡張機能をクリックしたとき」とか「すべてのサイト」とか選べます。
- Emacs で
M-x edit-server-startを実行します。- テキスト入力欄の右下に Edit というボタンができるので、これをクリックします。
- Emacs で新しいバッファが開き、テキスト入力欄の現在の内容が挿入されます。
- Emacs でテキストを編集し、
C-c C-cを押します。- テキストが Chrome の入力欄に書き戻されます。
QuickLook
- Dired mode でスペースキーを押すと QuickLook でプレビューを表示するようにできます。What are the advantages of Emacs for Mac OS X users? - Quoraの Zhou hai Tao さんの回答のところにコードがあります。