Commit c84b163946469ad4c34c95c5bb7496f68f48136b
1 parent
6fc87409
Exists in
master
update data structure
Showing
10 changed files
with
73 additions
and
193 deletions
Show diff stats
.idea/express-project.iml
| @@ -1,12 +0,0 @@ | @@ -1,12 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<module type="WEB_MODULE" version="4"> | ||
| 3 | - <component name="NewModuleRootManager"> | ||
| 4 | - <content url="file://$MODULE_DIR$"> | ||
| 5 | - <excludeFolder url="file://$MODULE_DIR$/.tmp" /> | ||
| 6 | - <excludeFolder url="file://$MODULE_DIR$/temp" /> | ||
| 7 | - <excludeFolder url="file://$MODULE_DIR$/tmp" /> | ||
| 8 | - </content> | ||
| 9 | - <orderEntry type="inheritedJdk" /> | ||
| 10 | - <orderEntry type="sourceFolder" forTests="false" /> | ||
| 11 | - </component> | ||
| 12 | -</module> | ||
| 13 | \ No newline at end of file | 0 | \ No newline at end of file |
.idea/jsLibraryMappings.xml
.idea/markdown-navigator.xml
| @@ -1,72 +0,0 @@ | @@ -1,72 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<project version="4"> | ||
| 3 | - <component name="MarkdownProjectSettings"> | ||
| 4 | - <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true"> | ||
| 5 | - <PanelProvider> | ||
| 6 | - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> | ||
| 7 | - </PanelProvider> | ||
| 8 | - </PreviewSettings> | ||
| 9 | - <ParserSettings gitHubSyntaxChange="false"> | ||
| 10 | - <PegdownExtensions> | ||
| 11 | - <option name="ABBREVIATIONS" value="false" /> | ||
| 12 | - <option name="ANCHORLINKS" value="true" /> | ||
| 13 | - <option name="ASIDE" value="false" /> | ||
| 14 | - <option name="ATXHEADERSPACE" value="true" /> | ||
| 15 | - <option name="AUTOLINKS" value="true" /> | ||
| 16 | - <option name="DEFINITIONS" value="false" /> | ||
| 17 | - <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" /> | ||
| 18 | - <option name="FENCED_CODE_BLOCKS" value="true" /> | ||
| 19 | - <option name="FOOTNOTES" value="false" /> | ||
| 20 | - <option name="HARDWRAPS" value="false" /> | ||
| 21 | - <option name="HTML_DEEP_PARSER" value="false" /> | ||
| 22 | - <option name="INSERTED" value="false" /> | ||
| 23 | - <option name="QUOTES" value="false" /> | ||
| 24 | - <option name="RELAXEDHRULES" value="true" /> | ||
| 25 | - <option name="SMARTS" value="false" /> | ||
| 26 | - <option name="STRIKETHROUGH" value="true" /> | ||
| 27 | - <option name="SUBSCRIPT" value="false" /> | ||
| 28 | - <option name="SUPERSCRIPT" value="false" /> | ||
| 29 | - <option name="SUPPRESS_HTML_BLOCKS" value="false" /> | ||
| 30 | - <option name="SUPPRESS_INLINE_HTML" value="false" /> | ||
| 31 | - <option name="TABLES" value="true" /> | ||
| 32 | - <option name="TASKLISTITEMS" value="true" /> | ||
| 33 | - <option name="TOC" value="false" /> | ||
| 34 | - <option name="WIKILINKS" value="true" /> | ||
| 35 | - </PegdownExtensions> | ||
| 36 | - <ParserOptions> | ||
| 37 | - <option name="COMMONMARK_LISTS" value="true" /> | ||
| 38 | - <option name="DUMMY" value="false" /> | ||
| 39 | - <option name="EMOJI_SHORTCUTS" value="true" /> | ||
| 40 | - <option name="FLEXMARK_FRONT_MATTER" value="false" /> | ||
| 41 | - <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" /> | ||
| 42 | - <option name="GFM_TABLE_RENDERING" value="true" /> | ||
| 43 | - <option name="GITBOOK_URL_ENCODING" value="false" /> | ||
| 44 | - <option name="GITHUB_EMOJI_URL" value="false" /> | ||
| 45 | - <option name="GITHUB_LISTS" value="false" /> | ||
| 46 | - <option name="GITHUB_WIKI_LINKS" value="true" /> | ||
| 47 | - <option name="JEKYLL_FRONT_MATTER" value="false" /> | ||
| 48 | - <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" /> | ||
| 49 | - </ParserOptions> | ||
| 50 | - </ParserSettings> | ||
| 51 | - <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true"> | ||
| 52 | - <GeneratorProvider> | ||
| 53 | - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> | ||
| 54 | - </GeneratorProvider> | ||
| 55 | - <headerTop /> | ||
| 56 | - <headerBottom /> | ||
| 57 | - <bodyTop /> | ||
| 58 | - <bodyBottom /> | ||
| 59 | - </HtmlSettings> | ||
| 60 | - <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true"> | ||
| 61 | - <StylesheetProvider> | ||
| 62 | - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> | ||
| 63 | - </StylesheetProvider> | ||
| 64 | - <ScriptProviders /> | ||
| 65 | - <cssText /> | ||
| 66 | - </CssSettings> | ||
| 67 | - <HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" /> | ||
| 68 | - <LinkMapSettings> | ||
| 69 | - <textMaps /> | ||
| 70 | - </LinkMapSettings> | ||
| 71 | - </component> | ||
| 72 | -</project> | ||
| 73 | \ No newline at end of file | 0 | \ No newline at end of file |
.idea/markdown-navigator/profiles_settings.xml
.idea/misc.xml
.idea/modules.xml
| @@ -1,8 +0,0 @@ | @@ -1,8 +0,0 @@ | ||
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | -<project version="4"> | ||
| 3 | - <component name="ProjectModuleManager"> | ||
| 4 | - <modules> | ||
| 5 | - <module fileurl="file://$PROJECT_DIR$/.idea/express-project.iml" filepath="$PROJECT_DIR$/.idea/express-project.iml" /> | ||
| 6 | - </modules> | ||
| 7 | - </component> | ||
| 8 | -</project> | ||
| 9 | \ No newline at end of file | 0 | \ No newline at end of file |
.idea/vcs.xml
app.config.json
app.js
| 1 | require('app-module-path').addPath(__dirname); | 1 | require('app-module-path').addPath(__dirname); |
| 2 | const express = require('express'); | 2 | const express = require('express'); |
| 3 | const app = express(); | 3 | const app = express(); |
| 4 | -const utils = require('utils/utils'); | ||
| 5 | -// const conf = require('utils/config'); | ||
| 6 | -// var log = require('./utils/log'); | ||
| 7 | -// var constants = require('./utils/constants'); | ||
| 8 | 4 | ||
| 5 | + | ||
| 6 | +//core | ||
| 9 | var core = require('./utils/core'); | 7 | var core = require('./utils/core'); |
| 10 | // var stats = core.stats; | 8 | // var stats = core.stats; |
| 11 | var log = core.log; | 9 | var log = core.log; |
| 12 | var constants = core.constants; | 10 | var constants = core.constants; |
| 13 | var conf = core.config; | 11 | var conf = core.config; |
| 14 | core.init(app); | 12 | core.init(app); |
| 15 | -//init | ||
| 16 | -// app.use(function (req, res, next) { | ||
| 17 | -// core.init(app); | ||
| 18 | -// next(); | ||
| 19 | -// }); | 13 | + |
| 14 | +//helper | ||
| 15 | +const utils = require('utils/utils'); | ||
| 16 | + | ||
| 17 | + | ||
| 18 | +//setup help build message resBody | ||
| 19 | +function logResponseBody(req, res, next) { | ||
| 20 | + var oldWrite = res.write, | ||
| 21 | + oldEnd = res.end; | ||
| 22 | + | ||
| 23 | + var chunks = []; | ||
| 24 | + | ||
| 25 | + res.write = function (chunk) { | ||
| 26 | + chunks.push(chunk); | ||
| 27 | + oldWrite.apply(res, arguments); | ||
| 28 | + }; | ||
| 29 | + | ||
| 30 | + res.end = function (chunk) { | ||
| 31 | + var body = ''; | ||
| 32 | + | ||
| 33 | + if (typeof chunk !== 'string' && !(chunk instanceof Buffer)) { | ||
| 34 | + res["resBody"] = body ; | ||
| 35 | + oldEnd.apply(res, arguments); | ||
| 36 | + return ; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + if (!(chunk instanceof String || typeof chunk === 'string' ) ) | ||
| 40 | + chunks.push(chunk); | ||
| 41 | + try { | ||
| 42 | + //console.dir(chunks); | ||
| 43 | + body = chunks.length > 0? Buffer.concat(chunks).toString('utf8') :''; | ||
| 44 | + } catch (error) { | ||
| 45 | + logger.errorStack(error); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + res["resBody"] = body ; | ||
| 49 | + | ||
| 50 | + oldEnd.apply(res, arguments); | ||
| 51 | + }; | ||
| 52 | + | ||
| 53 | + next(); | ||
| 54 | +} | ||
| 55 | +app.use(logResponseBody); | ||
| 56 | + | ||
| 57 | +// setup json body parser | ||
| 58 | +const bodyParser = require('body-parser'); | ||
| 59 | +app.use(bodyParser.json()); | ||
| 60 | + | ||
| 61 | +// Enable CORS | ||
| 62 | +app.use(function (req, res, next) { | ||
| 63 | + // add generated request-id to session | ||
| 64 | + //req.session.reqId = req.id; | ||
| 65 | + // Enable CORS | ||
| 66 | + // res.header("Access-Control-Allow-Origin", "*"); | ||
| 67 | + res.header("Access-Control-Allow-Credentials", "true"); | ||
| 68 | + res.header("Access-Control-Allow-Origin", req.headers.origin); | ||
| 69 | + res.header("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, OPTIONS"); | ||
| 70 | + res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); | ||
| 71 | + next(); | ||
| 72 | +}); | ||
| 73 | + | ||
| 20 | 74 | ||
| 21 | // console.log(conf.get('redis.host')); | 75 | // console.log(conf.get('redis.host')); |
| 22 | 76 | ||
| @@ -24,8 +78,6 @@ core.init(app); | @@ -24,8 +78,6 @@ core.init(app); | ||
| 24 | const addRequestId = require('express-request-id')(); | 78 | const addRequestId = require('express-request-id')(); |
| 25 | app.use(addRequestId); | 79 | app.use(addRequestId); |
| 26 | 80 | ||
| 27 | - | ||
| 28 | - | ||
| 29 | // setup express-session with redis store | 81 | // setup express-session with redis store |
| 30 | const session = require('express-session'); | 82 | const session = require('express-session'); |
| 31 | // const RedisStore = require('connect-redis')(session); | 83 | // const RedisStore = require('connect-redis')(session); |
| @@ -46,51 +98,6 @@ const uuidV4 = require('uuid/v4'); | @@ -46,51 +98,6 @@ const uuidV4 = require('uuid/v4'); | ||
| 46 | // cookie: { maxAge: 3600000 } | 98 | // cookie: { maxAge: 3600000 } |
| 47 | // })); | 99 | // })); |
| 48 | 100 | ||
| 49 | - | ||
| 50 | - | ||
| 51 | -function logResponseBody(req, res, next) { | ||
| 52 | - var oldWrite = res.write, | ||
| 53 | - oldEnd = res.end; | ||
| 54 | - | ||
| 55 | - var chunks = []; | ||
| 56 | - | ||
| 57 | - res.write = function (chunk) { | ||
| 58 | - chunks.push(chunk); | ||
| 59 | - oldWrite.apply(res, arguments); | ||
| 60 | - }; | ||
| 61 | - | ||
| 62 | - res.end = function (chunk) { | ||
| 63 | - var body = ''; | ||
| 64 | - | ||
| 65 | - if (typeof chunk !== 'string' && !(chunk instanceof Buffer)) { | ||
| 66 | - res["resBody"] = body ; | ||
| 67 | - oldEnd.apply(res, arguments); | ||
| 68 | - return ; | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - if (!(chunk instanceof String || typeof chunk === 'string' ) ) | ||
| 72 | - chunks.push(chunk); | ||
| 73 | - try { | ||
| 74 | - //console.dir(chunks); | ||
| 75 | - body = chunks.length > 0? Buffer.concat(chunks).toString('utf8') :''; | ||
| 76 | - } catch (error) { | ||
| 77 | - logger.errorStack(error); | ||
| 78 | - } | ||
| 79 | - | ||
| 80 | - res["resBody"] = body ; | ||
| 81 | - | ||
| 82 | - oldEnd.apply(res, arguments); | ||
| 83 | - }; | ||
| 84 | - | ||
| 85 | - next(); | ||
| 86 | - } | ||
| 87 | - | ||
| 88 | -app.use(logResponseBody); | ||
| 89 | - | ||
| 90 | -// setup json body parser | ||
| 91 | -const bodyParser = require('body-parser'); | ||
| 92 | -app.use(bodyParser.json()); | ||
| 93 | - | ||
| 94 | // setup logger | 101 | // setup logger |
| 95 | // const logger = require('utils/request-logger'); | 102 | // const logger = require('utils/request-logger'); |
| 96 | 103 | ||
| @@ -131,20 +138,8 @@ app.use(bodyParser.json()); | @@ -131,20 +138,8 @@ app.use(bodyParser.json()); | ||
| 131 | 138 | ||
| 132 | 139 | ||
| 133 | 140 | ||
| 134 | -// var logg = require('./utils/cores/commonlog').init(conf.get("configlog"),app); | ||
| 135 | -app.use(function (req, res, next) { | ||
| 136 | - // add generated request-id to session | ||
| 137 | - //req.session.reqId = req.id; | ||
| 138 | - // Enable CORS | ||
| 139 | - // res.header("Access-Control-Allow-Origin", "*"); | ||
| 140 | - res.header("Access-Control-Allow-Credentials", "true"); | ||
| 141 | - res.header("Access-Control-Allow-Origin", req.headers.origin); | ||
| 142 | - res.header("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, OPTIONS"); | ||
| 143 | - res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); | ||
| 144 | - next(); | ||
| 145 | -}); | ||
| 146 | - | ||
| 147 | 141 | ||
| 142 | +//check header | ||
| 148 | app.use(function( req, res, next ) { | 143 | app.use(function( req, res, next ) { |
| 149 | if(req.headers["x-user"] && req.headers["usertoken"]) | 144 | if(req.headers["x-user"] && req.headers["usertoken"]) |
| 150 | next(); | 145 | next(); |
| @@ -153,27 +148,20 @@ app.use(function( req, res, next ) { | @@ -153,27 +148,20 @@ app.use(function( req, res, next ) { | ||
| 153 | 148 | ||
| 154 | }); | 149 | }); |
| 155 | 150 | ||
| 151 | +//prepare incomming | ||
| 156 | app.use( function( req, res, next ) { | 152 | app.use( function( req, res, next ) { |
| 157 | log.startEC(req); | 153 | log.startEC(req); |
| 158 | req = utils.findQueryString(req); | 154 | req = utils.findQueryString(req); |
| 159 | next(); | 155 | next(); |
| 160 | }); | 156 | }); |
| 161 | 157 | ||
| 162 | - | ||
| 163 | - | ||
| 164 | - | ||
| 165 | - | ||
| 166 | - | ||
| 167 | - | ||
| 168 | - | ||
| 169 | - | ||
| 170 | // get BE api configs | 158 | // get BE api configs |
| 171 | const apiUrlPrefix = conf.get('apiUrlPrefix'); | 159 | const apiUrlPrefix = conf.get('apiUrlPrefix'); |
| 172 | 160 | ||
| 173 | - | ||
| 174 | let preference = require('./controllers/preference/index'); | 161 | let preference = require('./controllers/preference/index'); |
| 175 | app.use(apiUrlPrefix+'/preference', preference); | 162 | app.use(apiUrlPrefix+'/preference', preference); |
| 176 | 163 | ||
| 164 | +//prepare outgoing | ||
| 177 | app.use( function( req, res, next ) { | 165 | app.use( function( req, res, next ) { |
| 178 | if(req.res.resBody) | 166 | if(req.res.resBody) |
| 179 | { | 167 | { |
utils/core.js
| @@ -3,9 +3,11 @@ var stats = require('./cores/stats'); | @@ -3,9 +3,11 @@ var stats = require('./cores/stats'); | ||
| 3 | var constants = require('./cores/constants') | 3 | var constants = require('./cores/constants') |
| 4 | var config = require('./cores/config') | 4 | var config = require('./cores/config') |
| 5 | 5 | ||
| 6 | +var logg = require('./cores/commonlog'); | ||
| 7 | + | ||
| 6 | var init = function(app) | 8 | var init = function(app) |
| 7 | { | 9 | { |
| 8 | - require('./cores/commonlog').init(config.get("configlog"),app); | 10 | + logg.init(config.get("configlog"),app); |
| 9 | } | 11 | } |
| 10 | 12 | ||
| 11 | 13 |