serverMiddleware属性

  • 类型:数组
    • 项目:字符串对象函数

next在内部创建连接实例,您可以向其中添加您自己的自定义中间件。这允许我们注册额外的路由(通常/ api路线)不需要外部服务器

因为connect本身是一个中间件,所以注册中间件可以同时使用两者nuxt开始也可以作为具有编程用法的中间件使用,如express-template.Nuxt模块还可以提供serverMiddleware使用this.addServerMiddleware ()

除此之外,我们还引入了前缀选项,默认为真正的.它将把路由器基础添加到服务器中间件中。

例子:

  • 服务器中间件路径:/ server-middleware
  • 路由器基础:/管理
  • 前缀:真(默认):/管理/ server-middleware
  • 前缀:假/ server-middleware

serverMiddleware vs中间件!

不要把它和路线的中间件客户端Vue或SSR在每条路由之前调用。中列出的中间件serverMiddleware房地产运行服务器端之前vue-server-renderer可以用于服务器特定的任务,如处理API请求或服务资产。

不要将serverMiddleware添加到middleware/目录中。

中间件,被webpack捆绑到你的产品包中,并在beforeouteenter上运行。如果你将serverMiddleware添加到middleware/目录中,它将被错误地作为中间件获取,并将错误的依赖添加到你的bundle中,或者产生错误。

使用

如果中间件是String,那么Nuxt.js会尝试自动解析并要求它。

nuxt.config.js
进口serveStatic为静态的出口默认的serverMiddleware//将注册重定向ssl npm包“redirect-ssl”//将从项目服务器-middleware目录注册文件来处理/server-middleware/* require路径' / server-middleware '处理程序“~ / server-middleware / index.js”我们也可以创建自定义实例路径' / static2 '处理程序serveStatic__dirname+' / static2 '

如果你不希望中间件注册所有的路由,你必须使用对象形式与特定的路径,否则下一个默认处理程序将不会工作!

自定义服务器中间件

也可以编写自定义中间件。有关更多信息,请参见连接文档

中间件(server-middleware / logger.js):

server-middleware / logger.js
出口默认的函数要求的事情res下一个// req是Node.js的http请求对象控制台日志要求的事情url// res是Node.js的http响应对象// next是一个函数来调用下一个中间件//如果你的中间件不是一个端点,不要忘记在末尾调用next !下一个
nuxt.config.js
serverMiddleware“~ / server-middleware /记录器”

自定义API端点

服务器中间件也可以扩展Express。这允许创建REST端点。

server-middleware / rest.js
常量bodyParser需要“体”常量应用程序需要“表达”应用程序使用bodyParserjson应用程序所有“/ getJSON”要求的事情res=>resjson数据“数据”模块出口应用程序
nuxt.config.js
serverMiddleware路径“/ server-middleware”处理程序“~ / server-middleware / rest.js”

对象语法

如果你的服务器中间件包含一个映射到路径的函数列表:

出口默认的serverMiddleware路径“/”处理程序“~ / server-middleware / a.js”路径“/ b”处理程序“~ / server-middleware /研究”路径' / c '处理程序“~ / server-middleware / c.js”

你也可以传递一个对象来定义它们,如下所示:

出口默认的serverMiddleware“/”“~ / server-middleware / a.js”“/ b”“~ / server-middleware /研究”' / c '“~ / server-middleware / c.js”