node.js expressメモ
対局履歴のキャッシュサーバをサーブレットを辞めて、node.jsで作り直したのでメモ
# expresss
sudo npm install express-generator -g
express -h
# 新規アプリ
express test
cd ./test/
npm install
DEBUG=myapp:* npm start
# mongo
npm install --save mongodb
# クライアント
mongo {addr}:{port}/{db} -u {user} -p {pass}
# サンプル
// ドキュメント
http://mongodb.github.io/node-mongodb-native/2.1/api/
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://USER:PASS@ADDR:PORT/DB';
//接続
MongoClient.connect(url, function(err, db) {
//console.log(db);
// テスト用collection
var col = db.collection('createIndexExample1');
// insert
// これは追加するたびにjsonの配列 [ {},{},,,] が伸びていく(更新ではなく追加)
col.insertOne({hello:'world_no_safe'});
// find
// 追加したものが表示されればOK
col.find().toArray(function(err, docs) {
console.log(docs);
});
db.close();
});
# db/mongo.js
// db/mongo.js
// 参考
// http://qiita.com/itagakishintaro/items/a1519998a91061cbfb1e
// http://mongodb.github.io/node-mongodb-native/2.1/api/
var db;
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var url = 'mongodb://USER:PASS@ADDR:PORT/DB';
// 接続
MongoClient.connect(url, function(err, mongodb) {
assert.equal(null, err);
console.log("[mongo.js] Connected correctly to server");
db = mongodb;
});
// collection
var collection = function( name ) {
return db.collection( name );
}
// collectionを見せる
module.exports = collection;
# routes/index.js
var collection = require( '../db/mongo' );
var col = collection(colname);
col.find().sort({created:-1}).toArray(function(err, docs){
dump(docs);
var length = docs.length;
}
var cursor = col.find({ id : { $eq : gameId } });
col.insertOne(game);
#
db.getCollectionNames().forEach(function(name){
print(name + ' - - - - ');
var collection = db[name];
collection.find().forEach(function(x){
// ここにupdateしたい内容を書く
// x.csaExists = false;
// collection.save(x);
});
;
collection.find().forEach(function(x){
printjson(x);
});
});
# log
var moment = require('moment');
function log(str){
var date = moment().format("YYYY/MM/DD HH:mm:ss.SSS");
console.log(date + " [index.js]" + str);
}
function dump(obj){
console.dir(obj);
}
# forerver
sudo npm install -g forever
# 開始/停止
forever start -a -w -l ${LOG_PATH} ${COMMAND}
forever stop ${uid}