7 changed files with 145 additions and 53 deletions
			
			
		@ -0,0 +1,55 @@ | 
				
			|||||
 | 
					'use strict'; | 
				
			||||
 | 
					const fs = require('fs'); | 
				
			||||
 | 
					const path = require('path'); | 
				
			||||
 | 
					const es = require('elasticsearch'); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					let initClient = (config, opts) => { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					   let logOptions; | 
				
			||||
 | 
					   if (opts.dev) { | 
				
			||||
 | 
					      let filename = path.join(process.cwd(), 'log', 'elasticsearch-development.log'); | 
				
			||||
 | 
					      let dir = path.dirname(filename); | 
				
			||||
 | 
					      if (!fs.existsSync(dir)) { | 
				
			||||
 | 
					         fs.mkdirSync(dir); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					      logOptions = { | 
				
			||||
 | 
					         type: 'file', | 
				
			||||
 | 
					         level: 'info', | 
				
			||||
 | 
					         path: filename | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					   } else { | 
				
			||||
 | 
					      logOptions = { | 
				
			||||
 | 
					         type: 'stdio', | 
				
			||||
 | 
					         level: 'error' | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					   } | 
				
			||||
 | 
					   let client = new es.Client({ | 
				
			||||
 | 
					      host: config.rootURL, | 
				
			||||
 | 
					      log: logOptions, | 
				
			||||
 | 
					      apiVersion: '5.5' | 
				
			||||
 | 
					   }); | 
				
			||||
 | 
					   return client; | 
				
			||||
 | 
					}; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					function factory (app, opts) { | 
				
			||||
 | 
					   if (opts.es) { | 
				
			||||
 | 
					      try { | 
				
			||||
 | 
					         app.fs.esclient = {} | 
				
			||||
 | 
					         let esclient = Object.keys(opts.es).reduce((p, esmodule) => { | 
				
			||||
 | 
					            console.log(`加载 ES ${esmodule}`); | 
				
			||||
 | 
					            let moduleCfg = opts.es[esmodule]; | 
				
			||||
 | 
					            let client = initClient(moduleCfg, opts); | 
				
			||||
 | 
					            p[esmodule] = client; | 
				
			||||
 | 
					            p[esmodule].config = moduleCfg; | 
				
			||||
 | 
					            return p; | 
				
			||||
 | 
					         }, {}); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					         app.fs.esclient = esclient; | 
				
			||||
 | 
					      } catch (error) { | 
				
			||||
 | 
					         console.error(error) | 
				
			||||
 | 
					         process.exit(-1); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					   } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					module.exports = factory; | 
				
			||||
					Loading…
					
					
				
		Reference in new issue