Nuxt中的服务器端单例注入

问题描述 投票:0回答:1

我需要在服务器端可以通过SS中间件/插件/ nuxtserverinit访问的共享对象(例如,缓存/记录器/服务)实例(单例)。>>

[我尝试了一个本地模块,该模块尝试在$cache钩子期间将render:done注入服务器端上下文中(请参阅下文),但是无论我尝试了什么,在SS请求处理期间仍然不可用。

// modules/myCache.js
export default function(_moduleOptions,config) {

  this.nuxt.hook("render:before", context => {
     const cache=new myExoticCache()

// I tried all the below combinations
     context.nuxt.$cache1=cache
     context.serverContext.$cache2=cache
     context.options.$cache3=cache
     context.globals.$cache4=cache

  });

  this.nuxt.hook("render:done", context => {

// tried the above here too     

  });
}

// plugins/myplug.js
export default ({serverContext,nuxt}, inject) => {
//all of the below are undefined
//nuxt.$cache
//serverContext.$cache

}

似乎我正在丢失某些东西。将会很高兴找出答案。如何将值从route:done挂钩传递到任何服务器端middleware/plugin/nuxtserverinit

我需要在服务器端可以通过SS中间件/插件/ nuxtserverinit访问的共享对象(例如,缓存/记录器/服务)实例(单个)。我尝试了一个本地模块,该模块试图将$ cache注入到...

vue.js nuxt.js nuxt
1个回答
0
投票

您可以从'vue-renderer:ssr:prepareContext'挂钩扩展ssrContext。

© www.soinside.com 2019 - 2024. All rights reserved.