完成2.0版重构

v2
yutent 2023-10-31 14:23:48 +08:00
parent 13a837a285
commit 212945cf85
1 changed files with 18 additions and 19 deletions

View File

@ -42,9 +42,13 @@ export default class Response {
this.set('Content-Type', mime)
}
set length(val) {
this.set('Content-Length', val)
}
set body(buf = null) {
if (this.#ended) {
return this
return
}
this.#ended = true
@ -77,9 +81,6 @@ export default class Response {
if (this.#ended) {
return
}
if (!/^(http[s]?|ftp):\/\//.test(url)) {
url = '//' + url
}
this.set('Location', url)
this.status = f ? 301 : 302
this.body = null
@ -89,10 +90,10 @@ export default class Response {
* [location 页面跳转(前端的方式)]
*/
location(url) {
let html = `<html><head><meta http-equiv="refresh" content="0;url=${url}"></head></html>`
if (this.#ended) {
return
}
let html = `<html><head><meta http-equiv="refresh" content="0;url=${url}"></head></html>`
this.render(html)
}
@ -101,13 +102,14 @@ export default class Response {
if (this.#ended) {
return
}
data += ''
data = data || STATUS_TEXT[code]
this.type = 'html'
this.set('Content-Length', Buffer.byteLength(data))
if (code) {
this.status = code
}
data += ''
data = data || STATUS_TEXT[this.status]
this.type = 'html'
this.set('Content-Length', Buffer.byteLength(data))
this.body = data
}
@ -176,9 +178,8 @@ export default class Response {
* @param {Num} code [返回码]
* @param {Str} msg [提示信息]
* @param {Str/Obj} data [额外数据]
* @param {Str} callback [回调函数名]
*/
send(code = 200, msg = '', data, callback) {
send(code = 200, msg = '', data) {
let output
if (this.#ended) {
@ -186,20 +187,13 @@ export default class Response {
}
if (msg && typeof msg === 'object') {
callback = data
data = msg
msg = STATUS_TEXT[code]
} else {
msg = msg || STATUS_TEXT[code]
}
output = { code, msg, data }
output = JSON.stringify(output)
if (callback) {
callback = callback.replace(/[^\w\.]/g, '')
output = callback + '(' + output + ')'
}
output = JSON.stringify({ code, msg, data })
this.type = 'json'
this.set('Content-Length', Buffer.byteLength(output))
@ -231,6 +225,11 @@ export default class Response {
return this
}
delete(key) {
this.#res.removeHeader(key)
return this
}
/**
* [append 往header插入信息]
* @param {String} key [description]