在客户端从 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');
我知道有几个类似的问题问这个。但是,我找不到解决问题的方法。我在我的项目中使用 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');