-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
98 lines (83 loc) · 3.01 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/**
* Created by tianqi on 14-7-11.
*/
var config = global.__CONFIG = require('./config.js');
var content_type_inspector = require("./util/content-type-inspector.js")
var lessmiddle = require('./libs/less-middleware/lib/middleware.js');
var fs = require('fs');
var path = require('path');
var express = require('express');
var app = express();
var log4js = require('log4js');
app.configure(function() {
// app.disable('etag')
app.set("port", config.run_port);
app.set("views", config.demo_path);
app.set("view engine", "jade");
app.use(express.favicon());
//日志支持
log4js.configure({
appenders: [{
type: 'console'
}]
});
logger = log4js.getLogger('normal');
logger.setLevel('INFO');
app.use(log4js.connectLogger(logger, {
level: log4js.levels.INFO
}));
app.use(function(req, res, next) {
res.header("Cache-Control", "max-age=2592000")
next();
})
app.use("/assets", lessmiddle({
src: config.assets_path,
compress: false,
force: true
}));
//combo service 多个文件合并
//like this : http://f2e.souche.com/assets/$$js/index.js,css/index.css
app.get(/\/assets\/(.*?)\$\$(.*)$/, require("./routes/combo_route.js"));
//requirejs 实时打包
app.get(/\/assets\/js\/(.*?)\.r\.js/, require("./routes/require_route.js"));
//js 静态服务,支持压缩
//
app.get(/assets\/js\/(.*?)\.js/, require("./routes/js_route.js"));
//requirejs 实时打包
app.get(/\/assets\/js-bigshop\/(.*?)\.r\.js/, require("./routes/requirebigshop_route.js"));
//js 静态服务,支持压缩
//
app.get(/assets\/js-bigshop\/(.*?)\.js/, require("./routes/jsbigshop_route.js"));
//其他文件的静态服务
app.get(/assets\/(.*)$/, function(req, res, next) {
var _path = req.params[0]
var filePath = path.join(config.assets_path, _path);
// var fileContent = fs.readFileSync(filePath, "utf-8")
// res.header('Content-Type', content_type_inspector(filePath));
// res.send(fileContent);
res.header('Access-Control-Allow-Origin', '*');
res.sendfile(filePath)
});
//demo服务,支持jade和普通的html
app.get(/^\/demo\/(.*)$/, require("./routes/demo_route.js"));
app.locals.pretty = true;
app.all("*", function(req, res, next) {
res.header("Cache-Control", "max-age=0")
return res.send("页面不存在", 404);
});
app.use(function(err, req, res, next) {
console.trace(err);
res.header("Cache-Control", "max-age=0")
return res.send(err.message, 404);
});
app.locals.moment = require('moment');
return app.locals.moment.lang('zh-cn');
});
app.set('env', 'development');
app.configure("development", function() {
return app.use(express.errorHandler());
});
require('http').createServer(app).listen(config.run_port, function() {
console.log("Express server listening on port " + app.get("port"));
}).setMaxListeners(0);
module.exports = app;