代码拉取完成,页面将自动刷新
'use strict'
//切换工作目录
process.chdir(__dirname);
const titbit = require('titbit');
const fs = require("fs");
const dbcfg = require('./dbconfig.js');
const pg = require("pg");
const wxkey = require('./wxkey.js');
const {httpcli} = require('gohttp');
const token = require("titbit-token");
const tbloader = require("titbit-loader");
try{
fs.accessSync('./images')
}catch(err){
fs.mkdirSync('./images')
}
let psql = new pg.Pool(dbcfg);
let cert_path = '/usr/local/share'
const app = new titbit({
//开启错误模式,有错误会输出错误信息
debug:true,
globalLog:true,
cert:`${cert_path}/api.52h5.xyz.pem`,
key:`${cert_path}/api.52h5.xyz.key`
})
let tb = new tbloader();
tb.init(app);
//helper助手模块,c.reply在HTTP/1.1协议里指向response.在/2协议里指向http2stream
//post请求
app.addService('psql',psql);
app.addService('imagePath',`${__dirname}/images`)
let tok = new token({
//token有效期,单位为秒
expires :45,
//必须是32位字符
key:'asdfghjklzxcvbnmqwertyuiop123456',
//必须是16位字符
iv:'zxcvbnmasdfghjkl'
})
app.addService('tok',tok);
app.get('/mp-login/:code',async c=>{
let auth_url = `https://api.weixin.qq.com/sns/jscode2session`
+ `?appid=${wxkey.appid}`
+ `&secret=${wxkey.secret}`
+ `&js_code=${c.param.code}`
+ `&grant_type=authorization_code`
let ret = await httpcli.get(auth_url)
.then(res=>{
return res.json()
})
c.send(tok.make(ret));
})
/*app.get('/decrypt/:token',async c=>{
c.send(tok.verify(c.param.token));
})*/
//运行在1234端口
app.run(4255)
/*HTTP 消息头 content-type 指定了数据的类型(数据的格式)。
Client
content-type描述的值要和提交的BODY数据格式一致
Server
根据content-type的值决定如何解析Body数据。
content-type:
multipart/form-data;boundary = xxx -------文件解析
text/* ---------文本类型
application/* -------------要看具体值,application/json也是文本类型
..... -------每种类型如何处理是双方设计好的通信方式
到web框架这一层面,则如何处理是开发框架设计好的,但通常都要遵循一个原则:
允许开发者做自己的处理
在本框架范围内:
multipart类型 c.body是object类型,文件信息解析到c.files.
application/x-www-form-urlencoded 传统的表单类型,c.body是object类型,用于获取提交的表单数据。
text/* c.body是文本类型,c.body= c.rawBody.toString('utf-8');
其他类型:c.body是buffer类型,就是对c.rawBody的引用。
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。