未捕获错误:尚未为上下文加载模块名称“https”:_。使用require([])

时间:2018-03-18 18:16:18

标签: javascript html node.js requirejs

这是我得到的错误 -

Uncaught Error: Module name "https" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded
    at makeError (require.js:168)
    at Object.localRequire [as require] (require.js:1436)
    at requirejs (require.js:1797)
    at Dataverse_API_node.js:1

我有一个 explore.html 页面,它调用脚本 Dataverse_API_node.js ,它本身依赖于 require.js 文件。我的 Dataverse_API_node.js 脚本应该在 explore.html 页面上显示其输出数据。但是,当我加载 explore.html 页面时,我遇到了上述错误。

请注意,我的 Dataverse_API_node.js 脚本独立运行且没有错误,并在通过 Node.js命令提示符运行时在命令提示符中显示数据。

Dataverse_API_node.js 脚本的前几行 -

const https = require("https");

var parseString = require('xml2js').parseString;

const demo_url = "https://demo.dataverse.org"

const actual_url = "https://demo.dataverse.org/dataverse/hbstest"

const search_uri = "/api/search"

const options = "?q=*&subtree=COSgak"

这是 explore.html 的一部分,我正在调用 Dataverse_API_node.js 脚本,并且应该显示数据 -

<p>
   <script src="Dataverse_API_node.js" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.5/require.js">
        document.write(search_for_all("https://demo.dataverse.org", 0, 'file'));
   </script>
</p>

我是Javascript的新手,非常感谢这个错误提供了一些帮助。请不要将我发送到 requirejs.org ,因为它没有真正的帮助。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

找到解决方案。只需使用browserify。安装browserify,然后运行以下命令 -

> browserify Dataverse_API_node.js > bundle.js

Browserify会在您的脚本中浏览所有“ require ”并将其包装在 bundle.js 中,并有助于在浏览器中运行node.js模块。< / p>

只需在 .html 文件中添加以下脚本 -

即可
<script type=text/javascript src="scripts/bundle.js"></script>