代码拉取完成,页面将自动刷新
'use strict'
process.chdir(__dirname)
const titbit = require('titbit')
const fs = require('fs')
const pg = require('pg')
const dbconfig = require('./dbconfig.js')
const wxkey = require('./wxkey.js');
const tbloader = require('titbit-loader');
const token = require('titbit-token')
let tok = new token({
// token有效期,单位是秒
expires:3600,
// 必须是32位字母数字
key:'qwertyuioplkjhgfdsazxcvbnm123456',
// 必须是16位字母数字
iv:'mnbvcxzasdfghjkl'
})
// 使用HTTP/1.1的客户端
const {httpcli} = require('gohttp')
// 初始化数据库连接
let psql = new pg.Pool(dbconfig)
try{
fs.accessSync('./images')
}catch(err){
fs.mkdirSync('./images')
}
let cert_path = '/usr/local/share'
const app = new titbit({
// 开启调试模式,会输出错误信息
debug: true,
globalLog: true,
cert: `${cert_path}/wx.qasdwer.top.pem`,
key: `${cert_path}/wx.qasdwer.top.key`
})
// 一定要在new之后
let tb = new tbloader();
tb.init(app)
// 就是在app.service对象上添加了一个属性
app.addService('tok',tok);
app.addService('psql',psql);
app.addService('imagePath',`${__dirname}/images`)
// c就是context
app.get('/',async c => {
c.send('ok')
})
app.get('/upload',async c => {
// c.helper是助手函数模块,其中有对stream的封装,c.reply是响应对象,http/1.1中指向response, http/2中指向stream
await c.helper.pipe('./upload.html',c.reply)
})
app.get('mp-login/:code',async c=>{
// c.send(c.param)
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));
})
// 监听1234端口运行服务
app.run(2001)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。