11 Star 22 Fork 7

run27017 / git-hook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 1.81 KB
一键复制 编辑 原始数据 按行查看 历史
run27017 提交于 2018-06-20 14:58 . 响应编码增加个utf-8
const http = require('http')
const url = require('url')
const pry = require('pryjs')
const { version } = require('./package.json')
const logger = require('./src/Logger')
const config = require('./src/Config')
const HandlerResolver = require('./src/HandlerResolver')
const RequestHandler = require('./src/RequestHandler')
const codeMappings = require('./src/CodeMappings')
const handlerResolver = new HandlerResolver()
const requestHandler = new RequestHandler(handlerResolver)
function parseRequest (request, callback) {
let { pathname, query } = url.parse(request.url, true)
logger.info('Receive request', pathname, query)
if (pathname === '/') {
callback({ path: '/'})
return
}
let data = ''
request.on('data', function (chunk) {
data += chunk
})
request.on('end', function () {
logger.verbose('Receive headers', request.headers)
logger.verbose('Receive data', data)
callback({ path: pathname, query, data, headers: request.headers, request })
})
}
function sendResponse (response, body) {
let status = 200
if (body.code) {
logger.info('send code', body.code)
status = codeMappings[body.code] || 500
}
logger.verbose('send data', body)
response.writeHead(status, { 'Content-Type': 'application/json;charset=utf-8' })
response.end(JSON.stringify(body, null, 2))
}
http.createServer(function (request, response) {
parseRequest(request, function (params) {
if (params.path === '/') {
sendResponse(response, {
title: '欢迎使用git-hook小工具',
version: version
})
} else {
const body = requestHandler.handle(params)
sendResponse(response, body)
}
})
}).listen(config.port, err => {
if (err) {
console.log(`Something bad happened: ${err}.`)
} else {
console.log(`Server is listening on ${config.port}.`)
}
})
NodeJS
1
https://gitee.com/run27017/git-hook.git
git@gitee.com:run27017/git-hook.git
run27017
git-hook
git-hook
v2

搜索帮助