首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >serverMiddleware访问Nuxt实例或上下文

serverMiddleware访问Nuxt实例或上下文
EN

Stack Overflow用户
提问于 2020-12-31 03:51:36
回答 2查看 3.7K关注 0票数 3

我试图从serverMiddleware访问Nuxt运行时变量

示例我有这个上下文.$db,它是我从这个插件中添加的

nuxt.config.js

代码语言:javascript
运行
复制
    plugins: [
        { src: '~/plugins/db_runtime.js', mode: 'server' }
    ]

~/plugins/db_runtime.js

代码语言:javascript
运行
复制
    db = 'test'
    
    export default ({ app }, inject) => {
        inject('db', db)
    }

然后我添加了一个serverMiddleware:

代码语言:javascript
运行
复制
    serverMiddleware: [
        { path: '/api', handler: '~/api/index.js' },
    ],

~/api/index.js:serverMiddleware

代码语言:javascript
运行
复制
    export default function(res, req) {
    }

是否存在访问上下文.$db的方法?i.e

代码语言:javascript
运行
复制
    export default function(res, req) {
        $config.db = null
    }
EN

回答 2

Stack Overflow用户

发布于 2020-12-31 07:42:16

对于静态数据,我通常做的是使用环境变量(.env)或在nuxt.config.js中声明的模块传递数据。

对于动态数据,由于serverMiddleware总是在您的nuxt应用程序的同一个生命周期中调用的,所以您可以使用asyncData()取()axios安全地将数据作为HTTP请求发送

请参阅serverMiddle生命周期的下列链接/图表:

了解Nuxt.js配置中的模块、Nuxt.js和插件

票数 0
EN

Stack Overflow用户

发布于 2021-08-06 18:05:44

所以我不是100%精通Nuxt生命周期 (v2.x),但是afaik在serverMiddleware生命周期阶段不能访问Nuxt应用程序上下文。serverMiddleware实际上是connect-based (由Express,btw在内部使用),用于处理reqresnext参数,它们表示请求、响应和next (connect的流管理参数)。

基本的概念原因是Nuxt应用程序上下文同时支持服务器端和客户端,默认的“通用”模式是Nuxt的核心目标。connect实际上是一个服务器端的库,旨在处理应用服务器的请求和响应性质。

由于您需要config.$db,只要您需要的配置值是静态的,那么在serverMiddleware中可能有一种使用nuxt.config env和通用环境变量的替代方法。$config是一个较新的Nuxt结构,旨在允许更灵活的运行时环境变量(以及正常的env )。

以下是Nuxt提供的电流2.x链路 to middleware vs serverMiddleware的解释。我还剪切/粘贴了文本信息,以防Nuxt上的链接褪色。

serverMiddleware与中间件! 不要将其与路由middleware混淆,这些路由在每条路由之前由Vue在客户端或SSR中调用。serverMiddleware属性中列出的中间件在vue- server呈现器之前运行服务器端,可以用于处理API请求或服务资产等特定于服务器的任务。不要将serverMiddleware添加到中间件/目录中。中间件,由webpack捆绑到您的产品包中,并在beforeRouteEnter上运行。如果将serverMiddleware添加到中间件/目录中,则Nuxt将错误地将其作为middleware,并将错误的依赖项添加到包中或生成错误。

顺便说一句,与往常一样,如果我在上述任何一个问题上都不正确,我总是欣赏Stackflow用户,他们指出了问题所在,或者可以更好地解释

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65516416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档