【问题标题】:Returned data being rendered instead of page structure in Nuxt返回的数据被渲染而不是 Nuxt 中的页面结构
【发布时间】:2020-12-02 12:31:21
【问题描述】:

我正在尝试从快速服务器以 JSON 格式返回数据以获取路由。数据返回正常,但是当我在浏览器上打开 NUXT 页面时,输出的是 JSON 数据而不是页面 HTML。

注意 express 路由和 page 路由是一样的。我知道这些路线相互冲突。我需要在不同的端口上安装服务器和前端吗?我在这里做错了什么吗?

谢谢

【问题讨论】:

  • 如果使用 express 作为 api,最好为您的 api 路由使用前缀。

标签: vue.js nuxt.js


【解决方案1】:

如果后端和前端的路由完全相同,则不能这样做。这是路由规则,它们必须是唯一的,而不是例如后端或前端问题。你可以在 express(api) 中拥有两条具有相同 url 的路由,nuxt 也可以。

如果我们说应用程序例如是邮局,则路由是指向房屋地址(控制器或操作)的路径,因此我们可以有两条路径来获取房屋,但其混淆具有相同的路径(url 或路由)和不同的房子。

简单的解决方案:

  • 正如您所说,使用不同的端口或不同的域将 api 和前端分开,甚至为您的快速路由添加前缀
  • 在快速处理所有这些时,意味着返回带有所需数据而不是 json 数据的视图或页面

【讨论】:

    【解决方案2】:

    为避免冲突,例如您应该使用 /api//api/v1/ 之类的前缀

    nuxt.config.js你需要定义你的服务器中间件

    serverMiddleware: ["~/api/index.js"]

    那个文件就是你的服务器。在底部,您需要像这样导出它:

    module.exports = {
       path: "/api",
       handler: app
    }
    

    请注意:如果您使用 express.js,app 是您的 express 应用程序。

    这里是:const app = express();

    如果一切正常,您的 API 根目录应该在 host:port/api/ 下可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2021-09-03
      • 2015-03-25
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多