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}

いいなと思ったら応援しよう!