簡體   English   中英

使用 API 在 Vercel 上部署 Nuxt JS

[英]Nuxt JS Deploy on Vercel with API

我正在嘗試將我的 nuxt 應用程序部署到 Vercel 上,但每當我嘗試發出 api 請求時,都會不斷收到“無法獲取 /api/hello”或任何其他端點。 我在日志中看不到任何錯誤,它返回 404 狀態。 一切都在我當地的環境中完美運行。

vercel.json:

{
  "version": 2,
  "rewrites": [
    { "source": "/api/(.*)", "destination": "/api" }
  ],
  "builds": [
    {
      "src": "api/**/*.js",
      "use": "@vercel/node"
    },
    {
      "src": "nuxt.config.js",
      "use": "@nuxtjs/vercel-builder",
      "config": {
        "serverFiles": ["api/**"]
      }
    }
  ]
}

nuxt.config.js

// Server Middleware API
  serverMiddleware:
    process.env.NODE_ENV === 'production'
      ? []
      : [
          { path: '/api', handler: '~/api/index' },
          { path: '/api/hello', handler: '~api/hello' }
        ],

/api/hello.js

import express from 'express'
import bodyParser from 'body-parser'

const app = express()
app.use(bodyParser.json())

app.get('/', (req, res) => {
  res.status(200).json('test - get').end()
})

app.post('/', (req, res) => {
  res.status(200).json('test - post').end()
})

export default app

更新;

nuxt.config.js

serverMiddleware: ['~/api', '~/api/hello']

/api/hello.js

import express from 'express'

const app = express()
app.use(express.json())

app.get('/', (req, res) => res.send('test-get'))
app.post('/', (req, res) => res.send('test-post'))

export default { path: '/api/hello', handler: app }

/api/index.js

import express from 'express'
import users from './users'

const app = express()

app.use(express.json())
app.use('/users', users)

app.get('/', (req, res) => res.send('Hi from /api'))

export default { path: '/api', handler: app }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM