33ead877
Nattapon Wongpaet
first code
|
1
2
3
|
require('app-module-path').addPath(__dirname);
const express = require('express');
const app = express();
|
6fc87409
sumatek
update structure
|
4
|
const conf = require('utils/config');
|
c84b1639
sumatek
update data struc...
|
5
6
|
const utils = require('utils/utils');
|
6fc87409
sumatek
update structure
|
7
8
9
10
11
12
|
// console.log(conf.get('redis.host'));
// setup generate request-id middleware
const addRequestId = require('express-request-id')();
app.use(addRequestId);
|
c84b1639
sumatek
update data struc...
|
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
|
// setup express-session with redis store
const session = require('express-session');
// const RedisStore = require('connect-redis')(session);
const uuidV4 = require('uuid/v4');
// app.use(session({
// genid: function(req) {
// return uuidV4(); // generates session id using UUID
// },
// store: new RedisStore({
// host: conf.get('redis.host'),
// port: conf.get('redis.port'),
// ttl: 180
// }),
// secret: 'dbc33e678f',
// saveUninitialized: true,
// resave: false,
// cookie: { maxAge: 3600000 }
// }));
// setup json body parser
const bodyParser = require('body-parser');
app.use(bodyParser.json());
// setup logger
// const logger = require('utils/request-logger');
// setup express request/response logger
const log4js = require('log4js');
log4js.configure('./config/log4js_config.json');
// const log4jsLogger = log4js.getLogger('express-project');
// const fileTransport = logger.fileTransport;
// const expressWinston = require('winston-express-middleware');
// expressWinston.requestWhitelist.push('session');
// expressWinston.requestWhitelist.push('body');
// expressWinston.responseWhitelist.push('session');
// expressWinston.responseWhitelist.push('body');
// app.use(expressWinston.logger({
// transports: [fileTransport],
// meta: true, // optional: control whether you want to log the meta data about the request (default to true)
// msg: "phoenix-partner - :: ## {{req.uid}} - {{req.id}} ## HTTP {{req.method}} {{req.url}} ",
// //msg: "SID:[{{req.session.id}}] UID:[{{req.id}}] HTTP {{req.method}} {{req.url}} ", //request-body:{{JSON.stringify(req.body)}}", // -- response-body:{{JSON.stringify(res.body)}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}"
// expressFormat: false, // Use the default Express/morgan request formatting, with the same colors. Enabling this will override any msg and colorStatus if true. Will only output colors on transports with colorize set to true
// colorStatus: true, // Color the status code, using the Express/morgan color palette (default green, 3XX cyan, 4XX yellow, 5XX red). Will not be recognized if expressFormat is true
// ignoreRoute: function (req, res) { return false; }, // optional: allows to skip some log messages based on request and/or response,
// customLogger: log4jsLogger,
// filterOutList: ['dropdown', 'loggedin', 'query-table', 'query-last-package-number', '.png', '.woff', '.ttf', 'jquery.nanoscroller', 'favicon.ico'], // not log any messages that have one of these words
// noExportData: true, // remove resultData in case message has '/export'
// noHeader: true, // not log headers if true
// noBody: false // not log body if true
// }));
// setup passport
// const passport = require('utils/passport-func')();
// const flash = require('connect-flash');
// app.use(flash());
// app.use(passport.initialize());
|
6fc87409
sumatek
update structure
|
74
|
// app.use(passport.session());
|
49559b6c
sumatek
merge
|
75
|
|
33ead877
Nattapon Wongpaet
first code
|
76
|
|
8349d210
sumatek
update unittest
|
77
78
79
|
app.use(function (req, res, next) {
// add generated request-id to session
|
33ead877
Nattapon Wongpaet
first code
|
80
81
82
83
|
//req.session.reqId = req.id;
// Enable CORS
// res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Credentials", "true");
|
33ead877
Nattapon Wongpaet
first code
|
84
85
|
res.header("Access-Control-Allow-Origin", req.headers.origin);
res.header("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, OPTIONS");
|
49559b6c
sumatek
merge
|
86
|
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
33ead877
Nattapon Wongpaet
first code
|
87
88
|
next();
});
|
49559b6c
sumatek
merge
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
app.use( function( req, res, next ) {
req = utils.findQueryString(req);
next();
});
// get BE api configs
const apiUrlPrefix = conf.get('apiUrlPrefix');
|
33ead877
Nattapon Wongpaet
first code
|
103
|
const appPort = conf.get('appPort');
|
33ead877
Nattapon Wongpaet
first code
|
104
105
106
107
|
// load controllers
let mongoQuery = require('./controllers/mongo-db/index');
app.use('/mongo', mongoQuery);
|
0b6272e0
sumatek
update template
|
108
109
|
let preference = require('./controllers/preference/index');
|
33ead877
Nattapon Wongpaet
first code
|
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
app.use(apiUrlPrefix+'/preference', preference);
// let apiSaleArea = require('./controllers/sale-area/index');
// app.use(apiUrlPrefix + '/sale-area', apiSaleArea);
// let apiLogin = require('./controllers/login/login')(passport);
// app.use('/', apiLogin);
// handle not found
app.all('*', function(req, res) {
res.status(404);
// respond with json
res.send({
error: 'Not found'
});
});
// // handle errors
// app.use(function (err, req, res, next) {
// // we may use properties of the error object
// // here and next(err) appropriately, or if
// // we possibly recovered from the error, simply next().
|
49559b6c
sumatek
merge
|
136
137
138
139
140
|
// res.status(err.status || 500).send(err.message || err);
// });
// winston-express-middleware errorLogger makes sense AFTER the router.
// app.use(expressWinston.errorLogger({
|
33ead877
Nattapon Wongpaet
first code
|
141
142
|
// transports: [fileTransport]
// }));
|
6fc87409
sumatek
update structure
|
143
|
|
33ead877
Nattapon Wongpaet
first code
|
144
|
app.listen(appPort, function () {
|
c84b1639
sumatek
update data struc...
|
145
|
console.log(conf.get('appName')+' listening on port ' + appPort + '!');
|
0b6272e0
sumatek
update template
|
146
|
});
|
49559b6c
sumatek
merge
|
|
|
c84b1639
sumatek
update data struc...
|
|
|
0b6272e0
sumatek
update template
|
|
|
5a3cfae2
sumatek
update log
|
|
|
58b47ee8
Nattapon Wongpaet
update query mongodb
|
|
|
58b47ee8
Nattapon Wongpaet
update query mongodb
|
|
|
49559b6c
sumatek
merge
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
30fb6c36
sumatek
update fixbug post
|
|
|
49559b6c
sumatek
merge
|
|
|
c84b1639
sumatek
update data struc...
|
|
|
0b6272e0
sumatek
update template
|
|
|
5a3cfae2
sumatek
update log
|
|
|
0b6272e0
sumatek
update template
|
|
|
5a3cfae2
sumatek
update log
|
|
|
0b6272e0
sumatek
update template
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
180aaa4d
sumatek
update unit test
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
0b6272e0
sumatek
update template
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
0b6272e0
sumatek
update template
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
0b6272e0
sumatek
update template
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
30fb6c36
sumatek
update fixbug post
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|
49559b6c
sumatek
merge
|
|
|
33ead877
Nattapon Wongpaet
first code
|
|
|