在客户端从 Nodejs 调用函数:未定义要求

Calling Function from Nodejs at Client side: require is not defined

我知道有几个类似的问题问这个。但是,我找不到解决问题的方法。我在我的项目中使用 svelte 和 nodejs。我正在从服务器端获取 JSON 文件,并希望使用 require 在客户端调用该函数。下面是我在服务器端的代码。

DataService.js

const fetch = require('node-fetch')

let data;
;(async ()=>{
    const res = await fetch('http://localhost:3000/api/tables.json');
    data = await res.json();
    // console.log(data);
})()

export const getTable = () => {
    console.log(data);
    return data;
    // console.log(data);
}

当我尝试从客户端调用 getTable() 时,出现“require is not defined”错误。我从各种答案中了解到,require 仅适用于服务器端,不适用于客户端。一些解决方案提到我使用考虑使用,脚本,commonjs,browersify 等等。

这是我的客户端代码。

Catalog.svelte

<script >
import {getTable} from '../components/dataservice.js';

console.log(getTable()); //gives an error of require is not defined


</script>

<h1>Table</h1>

如果我从 Dataservice.js 中删除“const fetch = require('node-fetch')”,它会给出 undefined 和 fetch is not defined。

任何帮助将不胜感激,因为我已经努力解决这个问题好几天了。

这应该有效:

const fetch = typeof window !== 'undefined'
  ? window.fetch
  : require('node-fetch');