API serverMiddleware属性
服务器端渲染中间件(serverMiddleware)
类型: Array
Items: String 或 Object 或 Function
Nuxt在内部创建实例,所以我们可以将我们的中间件到它的堆栈,并有机会提供更多的路由,如API,而无需外部服务器。因为连接本身是中间件,所以的中间件既可以用于nuxt start,也可以用作具有编程的中间件,如。Nuxt Modules还可以使用this.addServerMiddleware()设置serverMiddleware。
服务器端渲染中间件(serverMiddleware) vs 中间件(middleware)!@H__17@
不要将它与客户端或SSR中Vue在每条路由之前的routes middleware混淆。serverMiddleware只是在vue-server-renderer之前在服务器端运行,可用于服务器特定的任务,如处理API请求或服务资产。
不要将它与客户端或SSR中Vue在每条路由之前的routes middleware混淆。serverMiddleware只是在vue-server-renderer之前在服务器端运行,可用于服务器特定的任务,如处理API请求或服务资产。
@H__17@
如果中间件是String,Nuxt.js将尝试解析它。
例如 (nuxt.con.js):
import serveStatic from 'serve-static' export default { serverMiddleware: [ // Will register redirect-ssl npm package 'redirect-ssl', // Will register file from project api directory to handle /api/* requires { path: '/api', handler: '~/api/index.js' }, // We can create custom instances too { path: '/static2', handler: serveStatic(__dirname + '/static2') } ] }
! 如果您不希望中间件所有路由,则必须使用具有特定路径的`object`,否则nuxt认处理程序将不起作用!
如果中间件是String,Nuxt.js将尝试解析它。
例如 (nuxt.con.js):
import serveStatic from 'serve-static' export default { serverMiddleware: [ // Will register redirect-ssl npm package 'redirect-ssl', // Will register file from project api directory to handle /api/* requires { path: '/api', handler: '~/api/index.js' }, // We can create custom instances too { path: '/static2', handler: serveStatic(__dirname + '/static2') } ] }
! 如果您不希望中间件所有路由,则必须使用具有特定路径的`object`,否则nuxt认处理程序将不起作用!
服务器端渲染中间件 (Server Middleware)@H__17@
编写中间件也是可能的。有关更多信息,请参阅 .
Middleware (api/logger.js):
export default function (req, res, next) { // req 是 Node.js http request 对象 console.log(req.path) // res 是 Node.js http response 对象 // next是下中间件的 // 如果您的中间件不是最终执行,请不要忘记在最后next! next() }
Nuxt 配置 (nuxt.con.js):
serverMiddleware: [ '~/api/logger']
编写中间件也是可能的。有关更多信息,请参阅 .
Middleware (api/logger.js):
export default function (req, res, next) { // req 是 Node.js http request 对象 console.log(req.path) // res 是 Node.js http response 对象 // next是下中间件的 // 如果您的中间件不是最终执行,请不要忘记在最后next! next() }
Nuxt 配置 (nuxt.con.js):
serverMiddleware: [ '~/api/logger']