初めての node.js アプリです。http://www.nodebeginner.org/を例として、http://lokijs.org/をメモリ内データベースとして使用します。だから、私はコードの組織化に問題があります。次のようになります。
index.js
var server = require('./server');
var router=require('./router');
var reqHandler=require('./handler');
var loki=require('lokijs');
var db = new loki('world.json');
var handle={
'/getById':reqHandler.getById
};
db.loadDatabase({},function(){
server.start(router.route, handle,db)
});
サーバー.js
var http = require('http');
var url = require('url');
function start(route,handle,db){
http.createServer(function (req, res) {
route(req, res, handle,db);
}).listen(8080);
}
exports.start=start;
router.js
var url = require('url');
function route(req,res,handle,db) {
var pathname = url.parse(req.url).pathname;
if (typeof handle[pathname] === 'function') {
handle[pathname](res, req,db);
} else {
//process error
}
}
exports.route = route;
handler.js
var url = require('url');
var loki=require('lokijs');
var querystring=require('querystring');
function getById(res, req,db){
//process req. send response
//HERE db MUST BE ACCESSIBLE
}
exports.getById=getById;
現在のコード構造では、db 変数を最初の index.js から最後の handler.js に渡す必要があります。それは私にとって素晴らしい解決策ではないようです。
誰でもそれを手伝ってもらえますか?事前にthx。