如何使用 sveltekit 提供纯 json 文件?

Nes*_*8x8 2 javascript svelte sveltekit

我尝试在我的端点 routes/users.json.ts 中做这样的事情:

import * as api from '$lib/api'

export async function get({ query, locals }) {

  const response = await this.fetch('static/data/customers.json')

  return {
    status: 200,
    body: {
      data: response
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的静态文件夹位于路由文件夹中。

我收到此错误:

...
TypeError [ERR_INVALID_URL]: Invalid URL: /static/data/customers.json
    at onParseError (internal/url.js:259:9)
    at new URL (internal/url.js:335:5)
    at new Request (file:///home/nkostic/code/example/node_modules/@sveltejs/kit/dist/install-fetch.js:1239:16)
...
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

重要的是它必须是静态 json 文件。

小智 5

正如@evolutionxbox 指出的那样,在您的情况下,您需要导入而不是获取。幸运的是,vite 支持直接导入.json文件

这允许我们简单地导入文件顶部的 .json 并为其分配一个别名,如下所示:

import * as api from '$lib/api'
import yourJSON as api from 'path-to-file/customers.json'

export async function get({ query, locals }) {
   
  return {
    status: 200,
    body: {
      yourJSON
    }
  }

}
Run Code Online (Sandbox Code Playgroud)