我知道还有其他关于此问题的问题,但我已经准备了 10 多个答案,并尝试了每一个答案,但没有一个对我有用。
我收到此错误:Uncaught ReferenceError: require is not defined
当我尝试加载外部纯 JavaScript 文件以在 JWT 中进行编码时。
这是我试图包含在 require()
中的文件: https://github.com/hokaccha/node-jwt-simple我已经用 npm
下载.
在我的代码中我尝试了很多东西。
- 包含在
main.js
中与咕噜联系; - 在
<head>
内手动加载与<script src="path/to/folder"></script>
; - 使用适用于 NodeJs 的 npm 安装 RequireJs;
经过所有这些尝试,我遇到了相同的错误。我做错了什么?
这是我现在正在使用的代码:
index.html
<head>
<script type="text/javascript" src="dist/js/angular.min.js"></script>
<script type="text/javascript" src="dist/js/ui-router.min.js"></script>
<script type="text/javascript" src="dist/js/jwt.js"></script>
[... rest of head ...]
appCtrl.js(稍后将在构建时与应用程序的其余部分连接)
.controller('MainCtrl',
['$rootScope', '$scope', '$state',
function($rootScope, $scope, $state) {
var jwt = require('jwt');
var payload = { foo: 'bar' };
var secret = 'xxx';
var token = jwt.encode(payload, secret);
console.log(token);
}])
我的主要目标是基于 JWT token 处理用户身份验证。现在的问题是当用户登录应用程序时对 token 进行编码/解码。
即使有了所有这些,我仍然收到错误。你们知道如何解决这个问题吗?
最佳答案
如果你想在客户端使用require
,你需要使用类似 Browserify 的内容。或webpack (我绝对推荐后者)。
您收到该错误是因为实际上您从未在客户端代码的任何位置定义 require
。该 JWT 存储库不为您提供该功能。
此外,查看您提供的 JWT 存储库的文档,它似乎希望您在 node.js 环境中使用它(它为您提供 commonjs require
)。
关于javascript - AngularJs 引用错误 : require is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32751829/