2.0.8 • Published 4 years ago

mares-connector v2.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

mares-connector

mares framework 구동 모듈

Installation

npm install --save mares-connector

Example

//connector.js

const appRoot = require('app-root-path')

const settings = require('./')
const MaresConnector = require('mares-connector')
const maresMongoose = require('mares-mongoose')
const MaresWelder = require('mares-welder')
require('mares-mongoose-validator-extend') //단순로드
const maresExpressErrorHandler = require('mares-express-error-handler')
settings.global()

/**
 * App 연결 Connector
 */
class Connector {

	constructor() {

	}

	async start() {
		try {
			// mares-welder를 설정한다. (자세한 내용은 mares-welder문서를 참고한다.)
			this.mares = new MaresWelder(rootPath)
			this.mares.setMaresMongoose(maresMongoose)
			this.mares.bindExpressErrorHandler(maresExpressErrorHandler())
			
			// 설정된 mares를 아래와 같이 넣어준다.
			this.connector = new MaresConnector(this.mares, settings)
			await this.connector.startApp(appRoot.path)
			return this.connector
		} catch (e) {
			console.error(e)
		}
	}

	async stop() {
		
		// stopApp() 함수를 통해서 데이터베이스를 포함한 모든 서버 커넥션을 종료시킬 수 있다.
		await this.connector.stopApp()
	}
}

module.exports = Connector

Settings

index.js로 아래의 값들을 노출시킨다.

config

설정값을 세팅해준다. 0. index.js 1. common.js 2. development.js 3. production.js 4. test.js

{
    "mongoose": {
        "force": true,
        "url": "mongodb://localhost:27017/test?replicaSet=test"
    }
}

mongoose를 연결하기 위해선 mongoose 설정값을 반드시 넣어준다.

global

global 변수를 정의해준다.

module.exports = () => {
	global._ = require('lodash')
}

local

로컬라이제이션 스키마를 넣어준다.

let local = {
	'defaultLocale': 'KR',
	'defaultLanguage': 'ko',
	'locales': {
		'KR': {
			'name': '대한민국',
			'enName': 'Korea',
			'code': '+82',
			'timeGap': 9
		}
	},
	'languages': {
		'ko': {
			'name': '한국어',
			'enName': 'KOREAN',
			'countries': ['KR']
		}
	}
}
module.exports = local

modules

연결해야 할 모듈이름을 배열로 적어준다.

module.exports = [
    'infra-message'
]

mongoose or sequelize

데이터베이스 연결을 수행한다.

const mongoose = require('mongoose')
const meta = require('../infra-message/infra/meta')
const config = require('../settings/config').mongoose

require('./validator')
mongoose.set('useCreateIndex', true)
mongoose.plugin(require('mongoose-paranoid-plugin'), {field: 'delAt'})
mongoose.plugin(require('mongoose-beautiful-unique-validation'))
mongoose.plugin((schema, options = {}) => {
	schema.post('validate', function (error, doc, next) {
		Object.values(error.errors)
			.filter(fieldError => fieldError.name === 'CastError')
			.forEach(fieldError => {
				fieldError.message = options.messageKey || 'error.common.cast'
			})
		next(error)
	})
}, {
	messageKey: meta.codes.invalidType
})

module.exports = (async () => {
	return await mongoose.connect(config.url, {useNewUrlParser: true})
})
2.0.8

4 years ago

2.0.7

5 years ago

2.0.6

5 years ago

2.0.5

5 years ago

2.0.4

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.3

5 years ago

1.0.0

5 years ago