UNPKG

1.74 kBtext/coffeescriptView Raw
1'use strict'
2
3_ = require 'underscore'
4path = require 'path'
5restify = require 'restify'
6generator = require './generator'
7JaySchema = require 'jayschema'
8jaySchema = new JaySchema
9
10create = (config) ->
11 files = config.files or []
12 # 端口
13 port = config.port or 4321
14 # 是否强制认为请求失败
15 forceError = !!config.forceError
16 # 错误码
17 errorCode = config.errorCode or 500
18 # 启动restify server
19 server = restify.createServer
20 name: 'mock server'
21 version: '0.0.1'
22 server.use restify.acceptParser server.acceptable
23 server.use restify.queryParser()
24 server.use restify.bodyParser()
25 server.use restify.CORS()
26 server.use restify.jsonp()
27 server.use restify.gzipResponse()
28 files.forEach (file) ->
29 filePath = path.resolve process.cwd(), "./schema/#{file}"
30 schemas = require filePath
31 schemas.forEach (schema) ->
32 type = (schema.meta?.method or 'get').toLowerCase()
33 type = 'del' if type is 'delete' #restify del not delete..
34 uri = schema.meta?.uri or '/test'
35 server[type] uri, (req, res, next) ->
36 json = req.body
37 json = req.params if type is 'get' #如果是get请求 使用params
38 # 强制返回请求失败数据
39 if forceError
40 res.send errorCode, generator.generate schema.error
41 next()
42 # schema验证
43 jaySchema.validate json, schema.params, (errs) ->
44 unless errs
45 success = generator.generate schema.success
46 res.send 200, success
47 next()
48 else
49 error = _.extend generator.generate(schema.error), validate_errors: errs
50 res.send errorCode, error
51 next()
52
53 server.listen port, ->
54 console.info "############# \n mock server #{server.name} listening at #{port} ... \n#############"
55
56module.exports =
57 create: create
\No newline at end of file