feat: 初始化项目
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
## code 说明
|
||||
|
||||
code = 0 请求成功
|
||||
code = 1 请求失败
|
||||
@@ -0,0 +1,29 @@
|
||||
function responseMiddleware(fn) {
|
||||
return async (event, context) => {
|
||||
try {
|
||||
const result = await fn(event, context);
|
||||
console.log('responseMiddleware result:', result);
|
||||
if (result && result.code === undefined) {
|
||||
return sendResponse(result);
|
||||
} else {
|
||||
return sendResponse(
|
||||
result.data,
|
||||
result.code || 0,
|
||||
result.message || '',
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
return sendResponse({}, 1, err.message || '请求失败');
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function sendResponse(data = null, code = 0, message = '请求成功') {
|
||||
return {
|
||||
code,
|
||||
message,
|
||||
data,
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = responseMiddleware;
|
||||
@@ -0,0 +1,9 @@
|
||||
function sendResponse(data = {}, code = 0, message = '请求成功') {
|
||||
return {
|
||||
code,
|
||||
message,
|
||||
data,
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = sendResponse;
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"permissions": {
|
||||
"openapi": [
|
||||
"wxacode.get"
|
||||
]
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,72 @@
|
||||
const cloud = require('wx-server-sdk');
|
||||
const getOpenId = require('./src/user/getOpenId');
|
||||
const { createArea } = require('./src/station/area');
|
||||
const { createStation } = require('./src/station/station');
|
||||
const { createPDF } = require('./src/test/createPDF');
|
||||
|
||||
cloud.init({
|
||||
env: cloud.DYNAMIC_CURRENT_ENV,
|
||||
});
|
||||
|
||||
exports.main = async (event, context) => {
|
||||
try {
|
||||
console.log('main event.action:', event.action);
|
||||
switch (event.action) {
|
||||
case 'getOpenId': {
|
||||
const res = await getOpenId(event, context);
|
||||
return res;
|
||||
}
|
||||
case 'createArea': {
|
||||
return await createArea();
|
||||
}
|
||||
case 'createStation': {
|
||||
return await createStation();
|
||||
}
|
||||
case 'createPDF': {
|
||||
return await createPDF();
|
||||
}
|
||||
default:
|
||||
return { code: 1, message: '请检查云函数名是否正确!', data: {} };
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error in user cloud Function:', error);
|
||||
return { code: 1, message: '内部服务器错误', data: {} };
|
||||
}
|
||||
};
|
||||
|
||||
// const getOpenIdHandler = async (event, context) => {
|
||||
// const wxContext = cloud.getWXContext();
|
||||
// return { openid: wxContext.OPENID };
|
||||
// };
|
||||
|
||||
// exports.main = responseMiddleware(getOpenId);
|
||||
// exports.main = async (event, context) => {
|
||||
// console.log('event.type-------:', event.type);
|
||||
// debugger;
|
||||
// switch (event.type) {
|
||||
// case 'getOpenId': {
|
||||
// debugger;
|
||||
// return getOpenId(event, context);
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
|
||||
/*exports.main = async (event, context) => {
|
||||
console.log('event.type-------:', event.type);
|
||||
try {
|
||||
switch (event.type) {
|
||||
case 'getOpenId':
|
||||
try {
|
||||
const res = await getOpenId(event, context);
|
||||
console.log('---------res-:', res);
|
||||
return res;
|
||||
} catch (error) {
|
||||
console.error('Error in getOpenId:', error);
|
||||
return { code: 1, message: '内部服务器错误', data: {} };
|
||||
}
|
||||
default:
|
||||
return { code: 1, message: '未知的事件类型', data: {} };
|
||||
}
|
||||
} catch (error) {}
|
||||
};
|
||||
*/
|
||||
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "user",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"pdfkit": "^0.16.0",
|
||||
"wx-server-sdk": "~2.4.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const cloud = require('wx-server-sdk');
|
||||
const PDFDocument = require('pdfkit');
|
||||
const responseMiddleware = require('../../common/responseMiddleware');
|
||||
|
||||
const createPDF = responseMiddleware(async () => {
|
||||
const doc = new PDFDocument();
|
||||
// 创建一个临时文件来存储PDF数据
|
||||
const filePath = 'output/math.pdf';
|
||||
// 将 PDF 文档写入到文件流中
|
||||
const fileStream = fs.createWriteStream(filePath);
|
||||
|
||||
// 将PDF文档内容写入文件流
|
||||
doc.pipe(fileStream);
|
||||
// 注册中文字体
|
||||
const fontPath = path.join(__dirname, '../../fonts', 'SimHei.ttf'); // path.join(__dirname, 'fonts', 'SimHei.ttf');
|
||||
|
||||
console.log('fontPath---:', fontPath);
|
||||
// doc.registerFont(fontPath, { family: 'SimHei' });
|
||||
doc.registerFont('SimHei', fontPath);
|
||||
console.log(100);
|
||||
// 使用中文字体
|
||||
doc.font('SimHei').fontSize(24).text('你好,世界!');
|
||||
console.log(111);
|
||||
// 添加标题
|
||||
doc.fontSize(24).text('数学题试卷', { align: 'center' });
|
||||
|
||||
// // 添加计算题
|
||||
doc.fontSize(18).text('1. 计算:2 + 2 = ?', { align: 'left' });
|
||||
// doc.font('SimHei')
|
||||
// .fontSize(18)
|
||||
// .text('2. 计算:5 * 3 = ?', { align: 'left', y: doc.y + 20 });
|
||||
|
||||
// 绘制正方形
|
||||
doc.rect(200, 100, 50, 50).stroke();
|
||||
doc.text('正方形', 100, 160);
|
||||
|
||||
doc.addPage({
|
||||
margins: {
|
||||
top: 50,
|
||||
bottom: 50,
|
||||
left: 72,
|
||||
right: 72,
|
||||
},
|
||||
});
|
||||
|
||||
doc.font('SimHei').fontSize(24).text('新世界');
|
||||
|
||||
// // 绘制长方形
|
||||
// doc.rect(200, 100, 100, 50).stroke();
|
||||
// doc.font('SimHei').text('长方形', 200, 160);
|
||||
|
||||
// 结束PDF文档写入
|
||||
doc.end();
|
||||
// doc.pipe(writeStream);
|
||||
|
||||
// // 添加一些内容到 PDF 文档
|
||||
// doc.fontSize(25).text('Hello, World!', 100, 100);
|
||||
|
||||
// // 结束 PDF 文档
|
||||
// doc.end();
|
||||
|
||||
// // 监听文件流事件
|
||||
// writeStream.on('finish', () => {
|
||||
// console.log('PDF 文件已成功创建!');
|
||||
// });
|
||||
|
||||
// writeStream.on('error', (err) => {
|
||||
// console.error('创建 PDF 文件时出错:', err);
|
||||
// });
|
||||
// // 等待文件写入完成
|
||||
// await new Promise((resolve, reject) => {
|
||||
// fileStream.on('finish', resolve);
|
||||
// fileStream.on('error', reject);
|
||||
// });
|
||||
// const uploadResult = await cloud.uploadFile({
|
||||
// cloudPath: 'math.pdf', // 云存储中的文件路径
|
||||
// filePath: filePath, // 本地临时文件路径
|
||||
// });
|
||||
// console.log('uploadResult---:', JSON.stringify(uploadResult));
|
||||
|
||||
// // 删除本地临时文件
|
||||
// // fs.unlinkSync(filePath);
|
||||
// fs.rmSync(filePath);
|
||||
|
||||
// // 返回文件ID
|
||||
// return {
|
||||
// fileID: uploadResult.fileID,
|
||||
// };
|
||||
});
|
||||
// 使用中间件包装异步函数
|
||||
module.exports = {
|
||||
createPDF,
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
const cloud = require('wx-server-sdk');
|
||||
const responseMiddleware = require('../../common/responseMiddleware');
|
||||
|
||||
// 使用中间件包装异步函数
|
||||
module.exports = responseMiddleware(async (event, context) => {
|
||||
// 获取基础信息
|
||||
const wxContext = cloud.getWXContext();
|
||||
return {
|
||||
openid: wxContext.OPENID,
|
||||
appid: wxContext.APPID,
|
||||
unionid: wxContext.UNIONID,
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user