【发布时间】:2020-08-26 01:07:32
【问题描述】:
我知道有一些类似的问题问这个问题。但是,我没有找到解决我的问题的方法。我在我的项目中使用 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() 时,错误提示“未定义要求”。我从各种答案中了解到,要求仅适用于服务器端而不是客户端。提到我使用的一些解决方案考虑使用,Script,commonjs,browersify 等等。
这是我的客户端代码。
目录.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 未定义。
任何帮助都将不胜感激,因为我已经努力解决这个问题好几天了。
【问题讨论】:
-
您无法在客户端上运行 Node.js。您应该将 DataService.js 编写为客户端脚本或服务器脚本并在之间查询信息
-
你使用像 Webpack、rollup 或 parcel 这样的打包工具吗?
-
我在我的苗条项目中有汇总
标签: node.js json server client svelte