页面如何从使用 Require() 的 javascript 文件中调用函数?

Posted

技术标签:

【中文标题】页面如何从使用 Require() 的 javascript 文件中调用函数?【英文标题】:How can a page call a function from a javascript file that uses Require()? 【发布时间】:2021-01-09 04:30:53 【问题描述】:

这里是新手编码器。通过拼凑教程,我创建了一个 .js 模块,它使用 Google 的 API 返回我的 Google 表格中单元格的值。

模块,sheetsReader.js 在顶部包含这两条 require 行:

const google = require('googleapis');
let privatekey = require('../../config/privatekey.json');

它定义了一个函数getCell(),它返回作为参数传递给它的任何单元格的值——例如getCell('A6')

当我在节点终端中运行它时,它可以完美运行。但是我想在我的index.html 中访问这个函数,这样我就可以在页面上显示一个单元格值。 (我知道可能有更好的方法来实现这一点,但我正在尝试将此电子表格数据插入现有页面。)

要导出函数,在sheetsReader.js,我有:

module.exports.getCell = getCell;

并在index.html 中导入我在标题中输入:

<script> 
import * as getCell from './js/sheetsReader.js' 
</script>

但是,当我打开页面时,它无法正确加载,因为:

未捕获的引用错误:未定义要求 在 sheetReader.js:1

我现在知道 require() 在浏览器端不起作用。我尝试通过使用 browserify、requirejs 和各种其他修复来解决,但似乎没有一个适用于 html 页面。

我觉得我可能在这里遗漏了一些非常基本的东西——所以我很抱歉!我学会了设置服务器,这样我就可以使用 Google API 来读取电子表格......但无论我如何尝试,我似乎都无法找到调用我构建的函数的方法!

【问题讨论】:

作为更新:我通过让server.js 要求sheetsReader.js,然后让我的index.html 向服务器发出一系列GET 请求来实现此功能。浏览器中不需要require()。这似乎是完成一项简单任务的一种非常低效的方法——浏览器一次向服务器发出一个请求,服务器将请求传递给模块,然后将每个单元格的内容返回到本地数组——但它是我能想出的唯一解决方案! @jfriend00您对要解决的问题是正确的。好奇会有什么更好的方法! 【参考方案1】:

您导入的 google api 值不正确,您需要将其格式化为

       const google = require('googleapis.js');

【讨论】:

浏览器中没有require(),所以这是这里要解决的更根本的问题。 谢谢@swift-gaming,但实际上似乎并非如此。我最初使用了您建议的格式,但在我添加 之前它不起作用 - 请参阅以下说明:(***.com/questions/49424721/…)。添加括号后,js文件在节点中运行时运行良好。正如 jfriend00 所说,根本问题在于将依赖于 require() 的函数导入浏览器。

以上是关于页面如何从使用 Require() 的 javascript 文件中调用函数?的主要内容,如果未能解决你的问题,请参考以下文章

jsp页面中可以使用echarts吗

如何使用 JAVA 从 html 页面获取表格

如何将我的数据库打印为 html 页面上的表格?

如何在require中使用VUE

通过使用 java 脚本,我如何将值从一个 html 页面传递到另一个 html 页面? [复制]

如何从Java中提取PDF文件中的表格数据