20200814のMacに関する記事は5件です。

【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.js
const 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/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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だったらこんな設定いらないのに....
まぁこれでうっとしいエラーとはおさらばです!
お疲れ様でした(´・ω・`)ノオツ㌍♪

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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使ったら一瞬で解決した。俺の時間返して。




尾  張 。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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(エンターの挙動が変わりそうなのはコピーモードっぽいので後者かな・・・)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 をインストールする。
  • 実際に編集する時は次のようにします。

    1. Edit with Emacs にサイトの読み取り許可を与えます。設定によって、「拡張機能をクリックしたとき」とか「すべてのサイト」とか選べます。
    2. Emacs で M-x edit-server-start を実行します。
    3. テキスト入力欄の右下に Edit というボタンができるので、これをクリックします。
    4. Emacs で新しいバッファが開き、テキスト入力欄の現在の内容が挿入されます。
    5. Emacs でテキストを編集し、 C-c C-c を押します。
    6. テキストが Chrome の入力欄に書き戻されます。

QuickLook

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む