当我为 StackOverflow写这个答案时,我遇到了一个问题,即我想在服务器启动时(或服务器启动时)在 Nuxt.js 中执行一次某些代码。
我想过编写一个模块或插件,但没有成功,因为每次我联系服务器时,即每次调用localhost:3000/myPage时,都会执行这两个模块或插件。可能我缺少正确的模块挂钩或某些插件设置?
由于我在官方文档中找不到有关此问题的任何信息,因此我现在想出了一个相当丑陋的解决方案:我编写了一个服务器中间件,它执行一些代码(应该只运行一次的代码),然后返回一个空处理程序 -现在,这为每个请求增加了(少量)不必要的开销。
我的问题:在启动期间/启动后而不是在构建期间在 Nuxt.js 服务器上执行一次某些代码的最佳方法是什么?
最小的丑陋工作示例:
nuxt.config.js:
export default {
...
serverMiddleware: [ "~/serverMiddleware/run-once.js" ]
...
}
Run Code Online (Sandbox Code Playgroud)
~/serverMiddleware/run-once.js:
console.log("Yay, I only run once when the server is started!")
// Since we are a serverMiddleware, we have to return a handler, even if this it does nothing
// I think this is really ugly...
export default function (req, res, next) {
next()
}
Run Code Online (Sandbox Code Playgroud)
PS:我看到诸如Nuxt JS 插件是否可以只运行一次?但它似乎没有回答我的问题,因为 …
我正在使用 vue + nuxt.js 应用程序,我想知道是否可以为所有客户端缓存 axios webservice 调用。我必须获得一些货币参考数据,这对于每个客户都必须调用这些数据没有多大意义。
有人可以给我一些提示,甚至是一个例子吗?谢谢。