tojava
Version:
这是一个server服务支持ftl
67 lines (56 loc) • 1.92 kB
JavaScript
var n_path = require('path');
var fs = require('fs');
var color = require('colors');
var express = require('express');
var jspserver = require('./lib/fmk-jsp');
var R = require('ramda');
var gmroute = require('./lib/gmroute.js');
function readJson(path) { //读取当前json文件
var readFile = function(path) {
return JSON.parse(fs.readFileSync(path, 'utf-8'));
};
var path = n_path.join(process.cwd(), path);
if(fs.existsSync){
return readFile(path);
}else{
console.log(path+"文件找不到")
process.exit(-1);
}
};
var config = readJson('./g-cart-server.json');
var cmd = jspserver.start(config.jettry.root, config.jettry.port);
var jettryout = (function(flag) {
return function(data) {
var msg = data.toString();
if (msg.indexOf("Welcome To The JFinal World") != -1) {
flag = true;
msg = "gome-jsp-fremark 已经启动 root:" + config.jettry.root;
}
if (flag) console.log(msg.green);
};
}(false));
var app = express();
var all = function(a, b) {
app.all(a, b);
};
var http = require('http').createServer(app);
var groute = function(routes, app) {
console.log(routes);
var doroute = R.ifElse(R.is(String),
R.pipe(readJson, R.partialRight(groute, [app])), //不知道干啥, 自己认为没啥乱用
function(route) {
console.log(route);
app.all(R.head(route),
gmroute(R.tail(route), config));
});
R.forEach(doroute, routes);
};
//jsp服务器信息打印
cmd.stdout.on('data', jettryout);
cmd.on('close', function() {
console.log("gome-jsp-fremark 停止运行".red);
});
groute(config.project.routes, app);
http.listen(config.node.port, function() {
console.log(("node服务已启动端口是 " + config.node.port).cyan);
});