Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

mongo + express + nodejs + ejs + node-dev で 新規PJを立ち上げる

$
0
0

menスタック構築手順

mongo + express + nodejs + ejs を構築したので備忘録として残したい。

  • 一般的にはMEANスタックだが、Angularを除いて構築することにした。
  • jadeではなくejsとした理由は、汎用的に使えるhtml*1 でモックをつくるため
  • angularはあとで必用になったら考えることにした。

前提条件

1.nodejs インストール
2.express インストール
3.mongodb インストール

構築

1.モック作成

画面イメージhtml*1 を作成する。

2.フォルダ作成

2-1.ディレクトリ移動
2-2.フォルダ作成

3.プロジェクト作成

3-1.npm install
3-2.ディレクトリ構成確認
root/
 ├ bin/
 │ └ www
 ├ node_modules/
 ├ public/
 │ └ images/
 │ └ javascripts/
 │ └ stylesheets/
 ├ routes/
 │ └ index.js/
 │ └ users.js/
 ├ views/
 │ └ index.jade/
 ├ app.js/
 ├ package-lock.json/
 └ package.json/

4.アプリ起動

4-1.npm start
4-2.http://localhost:3000/にアクセスし、デフォルト表示の確認
4-3.ctrl + c でアプリ終了

5.ejs インストール

npminstallejs

6.モック追加

6-1.viewsフォルダ内に index.ejsとして追加
6-2.public/stylesheets内にcssファイル追加
6-3.public/javascripts内にjsファイル追加
6-4.public/images内に画像ファイル追加

7.ejsロジック追加

7-1.index.js修正

router.get('/',function(req,res,next){res.render("./index.ejs",{hoge:"hoge"});});

7-2.app.js修正

app.set("view engine","ejs");

8.ejsファイルにデータを渡す設定をする

8-1.バインドしたい場所に<%= hoge %>を記述
8-2.index.jsのrouter.getのres.renderの第二引数にobject型で設定する
 {hoge:"hoge"}

9.サーバー再起動ロジックの設定

  • ソースを修正するたびに再起動は手間なので、自動化する。
npminstall-gnode-dev
  • 再起動ロジックは、開発版でしか使わないので、グローバルにしておき、package.jsonには記述しない

10.アプリ起動

10-1.

node-dev./bin/www

10-2.http://localhost:3000/にアクセスすると、index.ejsに値がバインドされて、styleやjsや画像が読み込まれたものが表示される。
 

番外.コマンドプロンプトでmongodb crud操作

mongoshowdbsuse"dbName"showcollectionsdb."collectionName".find()
MySQLMongoDB
CREATE TABLE products (...);db.createCollection("products")
SHOW TABLES;show collections
DROP TABLE products;db.products.drop()
TRUNCATE TABLE products;db.products.remove()
SELECT * FROM products;db.products.find()
SELECT COUNT(*) FROM products;db.products.count()
SELECT COUNT(*) FROM products WHERE name LIKE "%camera%" OR category='C';db.products.find({ $or : [{ name : /camera/ },{ category : 'C' }] }).count()
SELECT COUNT(stock) FROM products;db.products.find({ stock : { $exists : true } }).count()

Viewing all articles
Browse latest Browse all 8691

Trending Articles