javascript - AngularJs 引用错误 : require is not defined

标签 javascript angularjs node.js

我知道还有其他关于此问题的问题,但我已经准备了 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/

相关文章:

javascript - 在页面重新加载中使用 $locationProvider 不起作用

node.js - 如何在 launch.json 的 Visual Studio Code 中反转 ${relativeFile} 中的反斜杠?

javascript - Bootstrap 轮播宽度 100% 且响应迅速

javascript - Jquery 使用电子邮件验证多个输入

AngularJS:ng-init 的范围

node.js - 在子模块中拆分 Express 应用程序

actionscript-3 - 从本地环境上的 flash 套接字连接到 TCP 服务器

javascript - 用 php 更改元素的内部文本

javascript - 在文本输入字段中显示纬度和经度

angularjs - Firebase 拥有数千个 on() 事件监听器,设计良好