Express.js学習でハマった!!
ドットインストール様で学習を進めていてスタックしたので、内容と対策をサクッとまとめてみました。
これから、ドットインストール様でexpress.jsの学習を進めていく方のために投下します!どんどん、トレース泥棒してください♪
環境
- Windows10
- Vagrant
- CentOS
- node.js
- express.js
参照
スタック一覧
- install 時
- #13 override
- #15 ejs部分の構文(include)
内容と対策
1, install
expressの導入時に動画上で触れていない部分があります。
任意のフォルダを用意してexpressのモジュールをインストールする前に、** npm init ** をしないといけないです。package.jsonファイルを用意しないとモジュールをインストールできなかったです。下記の2、では学習のみの利用であればエンターのみでOK!
1.mkdir app
cd app
2. npm init
3. npm install express
2, #13 override
動画#13でスタックし気が付いたのですが、app.jsのミドルウェアの11行目はこのままですとハマります。
app.use(express.methodOverride());
は、express v-4xだと使えない模様。コンソールのエラー内容で、
method-overrideという呪文を唱えるように指示されていましたので、
npm i method-override
で、インストールして、app.jsに、下記を追加する。
var methodOverride = require('method-override');
これで、エラー解消しました!
3, #15 ejs部分の構文
動画#15でドはまりしました!!
ここでは、共通部品であるヘッダーとフッターを別ファイルにして呼び込むことをしますが、動画通りだと構文エラーになります。
index.ejsとshow.ejsで、ejsのincludeを使いますが、
<% include ../header %>
ではなく、
<%- include('../header); -%>
と訂正しないとエラーになります。
原因は、動画更新当時のejsの構文ではOKだったからだと思います。これに気が付くまで時間がかかりました。。。express.jsでのエラーだと思い込んでいたので。
後記
プログラム学習はスタックが学びのいい機会だと割り切っていかないと嫌になりますね。教えてもらえる先輩エンジニアがいる方がうらやましい。
前述しましたが、ドットインストール様で学習をしていてハマった方の参考になれば嬉しいです。