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