处理异步可能引起的错误:框架BUG

This commit is contained in:
Last
2025-03-07 03:45:58 +08:00
parent 74bb8c5650
commit 1130fa0d76
5 changed files with 16 additions and 16 deletions

View File

@@ -100,8 +100,8 @@ const 屏幕宽高重置 = () => {
const disabled = ref(false); // 上锁
const inadvance = ref(400); // 距离
const page = ref(3); // 页码
//const page = ref(3); // 页码
//const nextPage = () => {
// fetch(`/api/text?page=${page.value}`).then((res) => {
// page.value = page.value + 1;

View File

@@ -12,7 +12,7 @@ export default defineEventHandler(async event => {
// 处理 GET 请求(读取image中的图片文件列表)
if (event.node.req.method === 'GET') {
const { page = 1, pagesize = 10, ...query } = event.context.query
return event.context.db.Gallery.findAll({ where: query, offset: (page - 1) * pagesize, limit: pagesize })
return event.context.db.Gallery.findAll({ where: query, offset: (parseInt(page) - 1) * parseInt(pagesize), limit: parseInt(pagesize) })
}
// 处理 POST 请求(FromData上传图片)

View File

@@ -1,6 +1,6 @@
import sequelize from 'sequelize'
export default defineNitroPlugin(async nitro => {
export default defineNitroPlugin(nitro => {
console.log('database plugin')
const { INTEGER, STRING, BOOLEAN, DATE } = sequelize.DataTypes
@@ -65,7 +65,7 @@ export default defineNitroPlugin(async nitro => {
})
// 同步数据模型
await db.sync({ alter: true, logging: false })
//await db.sync({ alter: true, logging: false })
//// 转移数据
//useStorage('blog').getKeys().then(keys => keys.forEach(item => {

12
server/plugins/query.js Normal file
View File

@@ -0,0 +1,12 @@
export default defineNitroPlugin(nitro => {
console.log('query plugin')
nitro.hooks.hook('request', event => {
if (event.node.req.method === 'GET') {
event.context.query = Object.fromEntries(
new URLSearchParams(event.node.req.url.split('?')[1] || '')
)
}
})
})

View File

@@ -3,7 +3,6 @@ export default defineNitroPlugin(async nitro => {
// 挂载到上下文
nitro.hooks.hook('request', async event => {
// 从 cookie 中获取 session_id
if (event.node.req.headers.cookie) {
const cookie = event.node.req.headers.cookie
@@ -18,7 +17,6 @@ export default defineNitroPlugin(async nitro => {
}))
}
}
// 必须要身份验证的请求类型(创建账户和登录除外)
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(event.node.req.method)) {
if (!event.context.session && event.node.req.url !== '/api/session' && event.node.req.url !== "/api/user") {
@@ -26,16 +24,6 @@ export default defineNitroPlugin(async nitro => {
return { message: '必须要登录才能操作' }
}
}
// 手动解析 URL 参数
if (event.node.req.method === 'GET') {
event.context.query = {}
event.node.req.url.split('?')[1]?.split('&').forEach(item => {
const [key, value] = item.split('=')
event.context.query[key] = value
})
}
})
})