示例#1
0
framework.on('load', function() {
	framework.injectModule('myControllerName', 'http://www.totaljs.com/inject-controller.js');
});
示例#2
0
framework.on('load', function() {
	framework.injectModel('user', 'http://www.totaljs.com/inject-model.js');
});
示例#3
0
var framework = require('total.js');
var http = require('http');

var port = parseInt(process.argv[2] || '8000', 10);
var debug = true;

framework.run(http, debug, port);
示例#4
0
var framework = require('total.js');
var http = require('http');
var debug = true;

framework.run(http, debug);
示例#5
0
var framework = require('total.js');
var http = require('http');

var debug = true;

framework.run(http, debug);

// Documentation: http://docs.totaljs.com/Framework/#framework.test
framework.test(true, function() {
	console.log('');
	console.log('====================================================');
	console.log('Congratulations, the test was successful!');
	console.log('====================================================');
	console.log('');
});
示例#6
0
function debug() {
    var framework = require("total.js"), port = parseInt(process.argv[process.argv.length - 1]);
    return isNaN(port) || (options || (options = {}), options.port = port), port > 0 && !options.port && (options.port = port || 8e3), options.https ? framework.https("debug", options) : (framework.http("debug", options), void(first ? framework.emit("debug-start") : framework.emit("debug-restart")))
}
示例#7
0
var isDebugging=process.argv[process.argv.length-1]==="debugging";var directory=process.cwd();var fs=require("fs");var path=require("path");function debug(){var framework=require("total.js");var http=require("http");var port=parseInt(process.argv[2]);framework.run(http,true,port)}function app(){var fork=require("child_process").fork;var utils=require("total.js/utils");var directories=[directory+"/controllers",directory+"/definitions",directory+"/modules",directory+"/resources",directory+"/components",directory+"/models"];var files={};var force=false;var changes=[];var app=null;var status=0;var async=new utils.Async;var pid="";var pidInterval=null;var prefix="------------> ";var isLoaded=false;function onFilter(path,isDirectory){return isDirectory?true:path.indexOf(".js")!==-1||path.indexOf(".resource")!==-1}function onComplete(){var self=this;fs.readdir(directory,function(err,arr){var length=arr.length;for(var i=0;i<length;i++){var name=arr[i];if(name==="debug.js"||name==="keepalive.js")continue;if(name==="config-debug"||name==="config-release"||name==="versions"||name.indexOf(".js")!==-1||name.indexOf(".resource")!==-1)self.file.push(name)}length=self.file.length;for(var i=0;i<length;i++){var name=self.file[i];if(!files[name])files[name]=isLoaded?0:null}refresh()})}function refresh(){var filenames=Object.keys(files);var length=filenames.length;for(var i=0;i<length;i++){var filename=filenames[i];(function(filename){async.await(function(next){fs.stat(filename,function(err,stat){if(!err){var ticks=stat.mtime.getTime();if(files[filename]!==null&&files[filename]!==ticks){changes.push(prefix+filename.replace(directory,"")+(files[filename]===0?" (added)":" (modified)"));force=true}files[filename]=ticks}else{delete files[filename];changes.push(prefix+filename.replace(directory,"")+" (removed)");force=true}next()})})})(filename)}async.complete(function(){isLoaded=true;setTimeout(refresh_directory,2e3);if(status!==1)return;if(!force)return;restart();var length=changes.length;for(var i=0;i<length;i++)console.log(changes[i]);changes=[];force=false})}function refresh_directory(){utils.ls(directories,onComplete,onFilter)}function restart(){if(app!==null){try{process.kill(app.pid)}catch(err){}app=null}var arr=process.argv;arr.pop();arr.push("debugging");app=fork(path.join(directory,"debug.js"),arr);app.on("message",function(msg){if(msg.substring(0,5)==="name:"){process.title="debug: "+msg.substring(6);return}});app.on("exit",function(){if(status!==255)return;app=null});if(status===0)app.send("debugging");status=1}process.on("SIGTERM",end);process.on("SIGINT",end);process.on("exit",end);function end(){if(arguments.callee.isEnd)return;arguments.callee.isEnd=true;fs.unlink(pid,noop);if(app===null){process.exit(0);return}process.kill(app.pid);app=null;process.exit(0)}function noop(){}if(process.pid>0){console.log(prefix+"PID: "+process.pid);pid=path.join(directory,"debug.pid");fs.writeFileSync(pid,process.pid);pidInterval=setInterval(function(){fs.exists(pid,function(exist){if(exist)return;fs.unlink(pid,noop);if(app!==null)process.kill(app.pid);process.exit(0)})},2e3)}restart();refresh_directory()}if(isDebugging)debug();else if(!fs.existsSync(path.join(directory,"debug.pid")))app();