
什么是 fast-qjs ?它能做什么? fast-qjs 是一个基于 fastify 框架使用约定式进行路由约束的轻量框架,完全继承 fastfiy 的优点,当你想要快速实现一个功能模块的 crud ,那么 fast-qjs 就能让你在 10 分钟以内完成
fast-qjs 优点:
files接口进行一个案例第一步,确保已经安装了nodejs,终端运行:
npx create-qjs qjs-app 执行成功你将看到如下项目结构
qjs-app/ ├── node_modules/ # 依赖包目录 │ ├── package.json # 项目配置文件 │ ├── package-lock.json # 依赖版本信息 紧接着执行下面的命令
cd qjs-app && npm run start 执行完你将看到如下结构
qjs-app/ │ ├── db/ │ ├── functions/ │ ├── public/ │ ├── node_modules/ │ ├── package.json │ ├── package-lock.json 现在进入functions目录,你将看到一个默认的qjs.mjs文件,根据终端提示你的项目运行在http://localhost:5173。紧接着你的 api 已经创建,浏览器访问 http://localhost:5173/api/qjs 你将看 qjs.mjs 默认插入数据库的信息
我们打开qjs.mjs文件你将看到如下信息:
// functions/qjs.mjs // @see https://github.com/allmors/qjs/ // import qjs from '@allmors/qjs/core'; export default async function (params, ctx) { // const User = await qjs.db.collection('user'); // const user = await User.insertOne({ name: "Sam", email: '[email protected]' }) // or const User = await this.db.collection('user'); const user = await User.insertOne({ name: "Sam", email: '[email protected]' }) // ...... return ctx.reply.send({ message: 'Hello from qjs API', method: context.method, params: { ...user } }); } 默认代码不用管,直接粘贴下面代码全部替换
export default async function (params, ctx) { try { const { file } = params let result = {} if (ctx.method === 'POST') { const res = await this.files.upload(file) result = res } return ctx.reply.send({ message: 'Hello from qjs API', method: ctx.method, result: result }); } catch (error) { throw new Error(error) } } 现在打开 apifox 或者其它工具,我以 apifox 为例 
现在你的文件上传接口已经开发完成,回到你的项目目录你将会看到uploads,里面就是你上传的文件,你可用通过 nginx 获取 caddy 反代该目录即可访问你的文件,当然了,如果你不想这么麻烦,那么,修改 package.json 中如下配置:
找到QJS_STATIC,把QJS_STATIC修改为uploads即可,然后访问:http:0.0.0.0:5173/public/你的 uploads 目录里面的文件名
比如:http://0.0.0.0:5173/public/61f1adee-08ea-45-1727658693615/deKGMl9.jpg
更多信息请查阅文档fast-qjs
1 gesse 2024-11-12 22:08:34 +08:00 看作者一直在更新,关注下! |
3 dsggnbsp 2024-12-07 11:45:04 +08:00 |
5 Jesmora OP @dsggnbsp 你是如何创建 functions 里面的文件的,如果你要访问 apiqjs ,那应该文件名为:apiqjs.mjs |
6 Jesmora OP @dsggnbsp 还应该注意你的 QJS_PREFIX ,看你的错误,我猜测你应该是要访问/api/qjs ,而不是 apiqjs |
7 dsggnbsp 2024-12-16 10:26:11 +08:00 @Jesmora #6 我觉得应该是 win 的报错 我比较笨 就没研究了 run start 之后 code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:' |