Node.js application framework with RESTful api
npm i -S rese-app
import ReseApp from 'rese-app'
import configs from './configs'
const app = new ReseApp(configs, [
// middlewares
])
app
.start()
.then(port => {
// success
app.logger.info(`App starting on http://localhost:${port}`)
})
.catch(err => {
// fail
app.logger.error(err)
})
export default {
server: {
port: process.env.NODE_ENV === 'development' ? 3000 : 9000
},
db: {
type: 'mongodb', // or 'mysql'
host: '127.0.0.1',
port: '27017',
database: 'your-database-name',
username: 'your-username',
password: 'your-password',
// mongodb
// ref: http://mongoosejs.com/docs/guide.html
schema: {
City: {
name: {
type: String,
required: [true, 'name required'],
},
totalPopulation: {
type: Number,
required: [true, 'totalPopulation required'],
},
country: String,
zipCode: Number,
},
Person: {
...
},
...
},
// OR mysql
// ref: http://docs.sequelizejs.com/en/v3/docs/models-definition/
schema: {
City: {
name: {
type: 'STRING',
allowNull: false,
defaultValue: ''
},
totalPopulation: {
type: 'BIGINT',
allowNull: false,
},
country: {
type: 'STRING'
}
},
...
}
},
router: {
prefix: 'api'
},
logs: {
// config for log4js
config: {
appenders: [{
type: 'console'
}, {
type: 'dateFile',
filename: 'log',
pattern: '_yyyy-MM-dd.log',
alwaysIncludePattern: true,
}]
},
// TRACE, DEBUG, INFO, WARN, ERROR, FATAL
level: process.env.NODE_ENV === 'production' ? 'WARN' : 'TRACE',
}
configs
:{Object}
requiredmiddlewares
:{Array}
optional, middleware functions
Instance of node-log4js
app.logger.trace()
app.logger.debug()
app.logger.info()
app.logger.warn()
app.logger.error()
app.logger.fatal()
Instance of koa-router
Models defined in config.js
schema
, each one is a instance of mongoose model (MongoDB) or sequelize model (MySQL)
See more:
All registered services
name
:{String}
required, service nameoptions
:{Object}
required, service optionspath
:{String}
requiredmethod
:{String}
optional,default: getprefix
:{String}
optional,default: router.prefixcontroller
:{Object}
requiredfn
:{Function}
required
name
:{String|Array}
optional, one/some/all serviceoptions
:{Object}
requiredpre
:{Function}
optionalpost
:{Function}
optional
- GET:
curl http://localhost:3000/api/city
- POST:
curl -i -H "Accept: application/json" -X POST -d "name=ny&totalPopulation=2000" http://localhost:3000/api/city
- PUT:
curl -i -H "Accept: application/json" -X PUT -d "totalPopulation=2200" http://localhost:3000/api/city/11
- DELETE:
curl -i -H "Accept: application/json" -X DELETE http://localhost:3000/api/city/11
https://github.com/neikvon/rese-app/tree/master/example
- Rese-api: https://github.com/neikvon/rese-api
2017-05-24 14:00
- Upgrade rese-api to v0.0.6.
2017-03-29 15:13
- Upgrade rese-api to v0.0.2.