如何解决在客户端从Nodejs调用函数:require未定义
我了解到有一些类似的问题。但是,我找不到解决问题的方法。我正在从项目中使用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”。我从各种答案中了解到,这些答案仅适用于服务器端,而不适用于客户端。提到的一些解决方案,我曾经考虑过使用Script,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')”,它将给我未定义的内容,并且未定义获取。
几天来我一直在努力解决这个问题,希望能对您有所帮助。
解决方法
这应该有效:
const fetch = typeof window !== 'undefined'
? window.fetch
: require('node-fetch');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。