エンジニアの卵の成長日記

https://blog.toru-takagi.dev/profile/

久しぶりにNVMを使ってNodeの環境構築を行って、Laravel5にはCSRFチェックを行ってるって知りました

NVMを使ったNodeのバージョン管理できる環境構築
※環境構築手順書の記事ではありません。
※正しい手順でやりたい場合は、他のサイトを読むことをお勧めします。


最初は別プロジェクトの環境構築から
フロント側をVue.js バック側をnodeのexpressを使うらしい
expressは昔に使ったことがある。Vue.jsは触りたいと思っていたからすごい嬉しい



まずは、npmを入れよう
会社のPCにはbrewが入っているから、今回はbrewを使って入れよう

$ brew --version
Homebrew 1.2.1
$ brew install node


あ。。。brewのupdateするのを忘れてた。。。
いつも先にupdateをするんだけど、まぁいいか

node 5.3.0 is already installed


あれ?もう入ってるやんけ笑

$node ls-remote


なんでエラー吐くんやって思ったけど、nvmだったわ笑
久しぶりすぎて色々忘れてた笑

nodeは入ってたけど、nvmが入っていないので入れていきます

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

.bash_profileの中身を見たけど、pathの設定がしてあった
Why? 勝手にやってくれるようになったの?


Gitからプロジェクトをcloneして、npm install

なんかnodeのバージョンが変みたいなエラーが出てた気がする

$npm run hoge

起動しない。。。webpack関係のエラーみたい
nvmでnodeのバージョンを変えて色々やってみる
(バージョンの指定がしていない環境構築手順書ってどうなん?)


色々やってみたけど
nodeのバージョンをv6.11.2にして、エラーが出まくっててよくわからなかったので、
エラーに書いてあったコマンドを実行
バージョンの違いによって起きた問題をリビルドして直す感じ?

npm rebuild node-sass --force


正直何が問題だったのかよくわかりませんでしたが、
うまく動作するようになりました


多分、npm installをした際のnodeのバージョンが古くて、うまくモジュールをインストールできていなかった?
nodeのバージョンをあげて、リビルドすることでいい感じの環境になったのかな?


環境構築は完了
次の作業に移る





Laradockのシステムの修正
次は前回の続きで、Laravelの案件

アプリケーションからDockerを起動して、
Laradockを起動

$docker-compose up -d apache2 postgres
$docker ps

URLにアクセスして、ちゃんと表示される
では、GitHubから最新verを持ってこよう


なんかめちゃくちゃコンフリクトしてる。。。

$git reset --hard

とかやっても、ローカルの変更が元に戻ってもpullしようとするとコンフリクトが起きて
もう一度statusを見てみると、新しいファイルと変更だらけ。。。

よくわからないから、社員さんに聞いたけど、
削除して、もう一度クローンした方が早いよと言われてそうすることに
Laravelのバージョンを変えたのがコンフリクト大量発生の原因らしい


あまりこういうパワー系は好きじゃないけど、やるか
調べたいけど、一応バイトだから給料もらってるわけだし、自己満足にお金をもらうわけにはいかない
最短時間でできるならそれをやらなければ


元に戻った
DBのMigrationをするみたい
MigrationはNodeでしかやったことないから、PHPではどうやってやるんだろう
laravel Migration 検索検索!


どうやら

$php artisan migrate

でいけるみたい


DBに接続しようとしてSequel Proを使ったんだけど、これってPostgres対応していないんだね笑
今まで会社でもプライベートでもコマンドでやってたから知らなかった

PSequelがいいみたいなので、これをインストールしてみる


PSequelを使って接続を試みたが、なぜか失敗
コマンドで接続を試みるが、失敗
だけど、今回のシステムを立ち上げてPostgresからデータを取ってくる画面に行くと、
ちゃんとエラーは起きていない(データベースを作っただけで中身は入れてないから、表は空白)


色々調査したんだけどわからなかった
自分の中の結論は、他のプロジェクトでPostgresを扱っていて、そいつがデーモンで動き続けている
よって、接続しようとすると、そっちに接続しようとして、そのUsernameはないよと言われるって感じ
でも、なぜ二つのDocker環境のPostgresに直接接続する方法を今度調べておこう


とりあえず、情報を登録する画面の作成に入る




色々あったけど、今回知ったのはLaravel5からPOST送信でCSRFチェックってのを行っているらしい
だから、Formの中にCSRFトークンを渡すコードを書くみたい
» Laravelのフォーム送信で「TokenMismatchException in VerifyCsrfToken.php」エラーの対処方法。|コワーキングスペース管理人のブログ


感想
LaravelでDBに登録する画面を作成していて思ったのは、Laravelの知識がとても足りていない
そして、IoCなどの概念を理解できていないということ

今度調べてブログに書きたいと思う