在Node.js中解决“Uncaught ReferenceError: require未定义”的错误

6

我正在尝试使用SendGrid设置一个基本的联系表单,但是我一直收到“Uncaught ReferenceError: require is not defined”错误。

我在HTML页面头部的script标签中有以下代码:

    var sendgrid = require('sendgrid')(username,pass);

我已经查看了requirejs,但是我不确定为什么会出现这个错误。可以有人解释一下如何解决这个问题吗?


1
你真的在使用node.js吗?这段代码应该添加在你的JavaScript服务器端的代码中,而不是HTML页面中。 - Guilherme Sehn
1
Node.js不在浏览器中。如果您想在浏览器中使用requirejs,您需要使用脚本标签将其加载进来。 - Logan Tegman
2个回答

10

require()在浏览器中不是内置的。

因此,当你说“我在html页面头部的脚本标签中有这段代码。”时,这就解释了为什么脚本运行时符号require未定义。如果你想在浏览器中使用require(),那么你需要首先使用一个脚本标签来加载一个定义require函数并支持require()类型功能的库,并确保在尝试使用require()之前成功加载它。 requirejs 是一个你可以使用的这样的库。

require()在服务器端的node.js中是内置的,因此总是可用的。


2
我需要怎么做才能在AngularJS中使用require()? - cfl
1
@cfl - 请重新阅读我的回答中间段落。我在那里告诉你,如果你想在浏览器中使用类似require()的功能,可以使用什么。这里有一篇关于它的文章:http://www.sitepoint.com/using-requirejs-angularjs-applications/ - jfriend00

4

基本上,您需要将源代码转换为浏览器可用的形式,将require调用替换为实际模块代码。

以下是一些工具:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接