N予備校のプログラミング入門メモ6
はじめに
以前の記事参照
15.テンプレートエンジン
Jadeのインストール時にエラー
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer npm WARN node-js-http@1.0.0 No description npm WARN node-js-http@1.0.0 No repository field. npm ERR! path ../acorn/bin/acorn npm ERR! code EPROTO npm ERR! errno -71 npm ERR! syscall symlink npm ERR! EPROTO: protocol error, symlink '../acorn/bin/acorn' -> '/home/vagrant/workspace/node-js-http-3015/node_modules/.bin/acorn' npm ERR! A complete log of this run can be found in: npm ERR! /home/vagrant/.npm/_logs/2018-02-09T10_22_48_646Z-debug.log
npm cache clear --force
したりnpm install
に--no-bin-links
オプション付けたりしてたらインストールできた。
と思ったらコマンドプロンプトが管理者権限じゃなかったのが原因かもしれないのでVagrantを起動しなおしてインストールを試したらうまくいった。忘れてはならない。
Jadeの記法
- 要素名、値を記述する
- 属性は要素名のあとに
()
で書く- 複数各場合は
,
で区切る
- 複数各場合は
- インデントで入れ子
#{変数名}
で変数の値を呼び出せる
doctype html html(lang="ja") head meta(charset="UTF-8") title アンケート body h1 どちらが食べたいですか? form(method="post", action="#{path}") span 名前: input(type="text", name="name") input(type="radio", name="favorite", value="#{firstItem}") span #{firstItem} input(type="radio", name="favorite", value="#{secondItem}") span #{secondItem} button(type="submit") 投稿
URLで条件分岐して動的にHTMLを生成して返すみたいなコードを書いた。
16.Heroku で Web サービスを公開
- Herokuに登録
- Heroku CLIをインストール
heroku --version heroku-cli/6.15.24-e5de04c (linux-x64) node-v9.5.0
npm installが失敗する
GitHubからcloneしたプロジェクトのnpm install
が失敗することがある。別の場所(ホームディレクトリとか)でnpm install
すると成功する場合があるので一旦インストールして、生成されたnode_modules
ディレクトリをコピーすると動く。
heroku
heroku create
- 他のサブコマンド
logs
info
destroy --confirm サーバー名
heroku create
してリモートリポジトリheroku
にpushしたらデプロイできた。面白い。
Hubotで作ったbotもHerokuにデプロイできるみたいなので後でやってみる。(やってみるとは言ってない)
destroy --confirm サーバー名
のサーバー名ってなんだってなったけど、https://<server-name>.herokuapp.com/
の<server-name>で合ってた。
練習問題
練習問題でgit checkout -b master-2017 origin/master-2017
というのが出てきた。master-2017 origin/master-2017
はリモートのブランチをローカルに持ってくる書き方、-b
オプションは新しいブランチを作成してチェックアウト。なのでリモートorigin
のmaster-2017
をローカルに持ってきて新しいmaster-2017
ブランチとしてチェックアウトする、という感じか。
masterにmergeしてpull requestしたらpackage-lock.json
というやつも一緒にプルリクされたんだけどこれでいいんだろうか。