A propriedade serverMiddleware
Define o intermediário no lado do servidor.
- 
Tipo: 
Array- 
Itens: 
StringouObjectouFunction 
 - 
Itens: 
 
O Nuxt internamente cria um instância de connect  que você pode adicionar ao seu próprio intermediário. Isto permite-nos registar rotas adicionais (normalmente rotas /api) sem precisar de um servidor externo.
Por connect mesmo ser um intermediário, o intermediário registado funcionará com ambos nuxt start e também quando usado como um intermediário com uso programático como o express-template . Os Módulos  do Nuxt pode também fornecer o serverMiddleware usando o this.addServerMiddleware() 
Adicionalmente a eles, nós introduzimos uma opção prefix a qual o valor padrão será true. Ela adicionará uma base de roteador para os intermediários do seu servidor.
Exemplo:
- 
Caminho do intermediário do servidor: 
/server-middleware - 
Base de roteador: 
/admin - 
Com o 
prefix: true(valor padrão):/admin/server-middleware - 
Com o 
prefix: false:/server-middleware 
serverMiddleware vs middleware!
Não confunda ele com o intermediários de rotas  as quais são chamadas antes de cada rota pelo Vue no lado do cliente ou na renderização no lado do servidor. O intermediário listado dentro da propriedade serverMiddleware executa no lado do servidor antes do vue-server-renderer e pode ser usado para tarefas específicas do servidor como manipulando de requisições de API ou servindo recursos.
serverMiddleware ao diretório middleware/.Os intermediários são empacotados pelo webpack dentro do seu pacote de produção e executam sobre o gatilho beforeRouteEnter. Se você adicionar o serverMiddleware ao diretório middleware/ ele será erradamente tomado pelo Nuxt como um intermediário comum e adicionará dependências erradas ao seu pacote ou gerar erros.Uso
Se o intermediário for um sequência de caracteres o Nuxt tentará pedir e resolver ele automaticamente.
import serveStatic from 'serve-static'
export default {
  serverMiddleware: [
    // Registará o pacote `redirect-ssl` de npm 
    'redirect-ssl',
    // Registará o ficheiro do diretório `server-middleware` do projeto manipular os pedidos de  `/server-middleware/*`
    { path: '/server-middleware', handler: '~/server-middleware/index.js' },
    // Podemos também criar instâncias personalizadas
    { path: '/static2', handler: serveStatic(__dirname + '/static2') }
  ]
}
 Intermediário de Servidor Personalizado
É também possível escrever um intermediário personalizado. Para mais informações consulte a Documentação do Connect .
Intermediário (server-middleware/logger.js):
export default function (req, res, next) {
  // O `req` é o objeto de requisição http do Node.js
  console.log(req.url)
  // O `res` é o objeto de resposta http do Node.js
  // O `next` é uma função para chamar o próximo intermediário
  // Não esqueça de chamar o `next` no final se o seu intermediário não for um ponto final!
  next()
}
 serverMiddleware: ['~/server-middleware/logger']
 Ponto Final de API Personalizada
Um intermediário de servidor pode também estender o Express. Isto permite a criação de pontos finais de REST.
const bodyParser = require('body-parser')
const app = require('express')()
app.use(bodyParser.json())
app.all('/getJSON', (req, res) => {
  res.json({ data: 'data' })
})
module.exports = app
 serverMiddleware: [
  { path: "/server-middleware", handler: "~/server-middleware/rest.js" },
],
 A Sintaxe de Objeto
Se o seu intermediário de servidor compreende em uma lista de funções mapeadas para os caminhos:
export default {
  serverMiddleware: [
    { path: '/a', handler: '~/server-middleware/a.js' },
    { path: '/b', handler: '~/server-middleware/b.js' },
    { path: '/c', handler: '~/server-middleware/c.js' }
  ]
}
 Você pode alternativamente passar um objeto para definir eles, como o seguinte:
export default {
  serverMiddleware: {
    '/a': '~/server-middleware/a.js',
    '/b': '~/server-middleware/b.js',
    '/c': '~/server-middleware/c.js'
  }
}
 
 
        Sébastien Chopin
       
 
        Nazaré da Piedade
       
 
        Nobu
       
 
        川音리오
       
 
        Maciek Palmowski
       
 
        Nestor Vera
       
 
        Daniel Roe
       
 
        Yue Yang
       
 
        Jeronimas
       
 
        Alessandro Carrano
       
 
        Clément Ollivier
       
 
        Alexander Lichter
       
 
        N3-rd
       
 
        Adrien Zaganelli
       
 
        Mag
       
 
        Stefan Huber
       
 
        Olga Bulat
       
 
        Paiva
       
 
        Florian Reuschel
       
 
        Savas Vedova
       
 
        Steven
       
 
        Vinícius Alves
       
 
        Kareem Dabbeet
       
 
        Valentín Costa
       
 
        Ryan Skinner
       
 
        Alex Hirzel
       
 
        Ajeet Chaulagain
       
 
        René Eschke
       
 
        Nico Devs
       
 
        Muhammad
       
 
        Naoki Hamada
       
 
        Tom
       
 
        Yann Aufray
       
 
        Anthony Chu
       
 
        Nuzhat Minhaz
       
 
        Lucas Portet
       
 
        Richard Schloss
       
 
        Bobby
       
 
        bpy
       
 
        Antony Konstantinidis
       
 
        Hibariya
       
 
        Jose Seabra
       
 
        Eze
       
 
        Florian Lefebvre
       
 
        Lucas Recoaro
       
 
        Julien SEIXAS