Доступ с состоянию приложения в quasar (vue3) из middleware с стейт менеджером pinia
Каким образом я могу получить доступ к состоянию приложения (pinia) в middleware в quasar (vue3) c ssr.
apartmentsStore.js
import {defineStore} from "pinia"
export const useApartStore = defineStore({
id: "apartStore",
state: () => ({
count: 12,
}),
actions:{
increment(){
console.log('increment')
this.count++
}
}
});
testMiddleware.js
import { useApartStore } from "src/store/apartmentsStore.js";
export default async (context) => {
const store = useApartStore();
store.increment();
}
quasar.config.ru
middlewares: [
"testMiddleware",
"render", // keep this as last one
]
При попытке обращения с store внутрие middleware происходит ошибка.
App • WAIT • Starting webserver...
[Quasar SSR] middleware error: Error: [?]: getActivePinia was called with no active Pinia. Did you forget to install pinia?
const pinia = createPinia()
app.use(pinia)
This will fail in production.
at useStore (K:\nodejs_projects\5\quasar\node_modules\pinia\dist\pinia.cjs:1700:19)
at Array.testMiddleware_default (K:\nodejs_projects\5\quasar\.quasar\ssr\compiled-dev-webserver.js:69:21)
at K:\nodejs_projects\5\quasar\.quasar\ssr\compiled-dev-webserver.js:192:29
at async SsrDevServer.#bootWebserver (K:\nodejs_projects\5\quasar\node_modules\@quasar\app-vite\lib\modes\ssr\ssr-devserver.js:307:5)
at async SsrDevServer.#runVite (K:\nodejs_projects\5\quasar\node_modules\@quasar\app-vite\lib\modes\ssr\ssr-devserver.js:257:5)
App • DONE • Webserver is ready • 15ms
При этом если я обращаюсь с магазину из компонента, то все работает как положено. Apartments.vue
<template lang="pug">
div.apart apartments {{count}}
button(@click="store.increment") increment
</template>
<script>
import {useApartStore} from "src/store/apartmentsStore.js"
import {storeToRefs} from "pinia"
export default {
name: "ApartmentsPage",
setup(props){
console.log('setup')
const store = useApartStore()
const { count } = storeToRefs(store)
return {
store,
count
}
}
}
</script>