Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未定义在节点给定窗口中使用require(';angular';)_Angularjs_Node.js_Express - Fatal编程技术网

Angularjs 未定义在节点给定窗口中使用require(';angular';)

Angularjs 未定义在节点给定窗口中使用require(';angular';),angularjs,node.js,express,Angularjs,Node.js,Express,所以我对node是个新手,但我知道了如何安装node_模块。我想弄明白的是如何在代码中正确地包含“角度” 因此,在新的express 4加速版中,我做到了: npm install --save angular 然后我进入routes/index.js并添加了require('angular'): 但当我启动节点时,会出现一个错误,上面写着: ReferenceError: window is not defined at Object.<anonymous> (/User

所以我对node是个新手,但我知道了如何安装node_模块。我想弄明白的是如何在代码中正确地包含“角度”

因此,在新的express 4加速版中,我做到了:

npm install --save angular
然后我进入
routes/index.js
并添加了
require('angular')

但当我启动节点时,会出现一个错误,上面写着:

ReferenceError: window is not defined
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/angular.js:26307:4)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/index.js:1:63)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
ReferenceError:未定义窗口
反对。(/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/angular.js:26307:4)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)
在Module.load(Module.js:355:32)
在Function.Module.\u加载(Module.js:310:12)
at Module.require(Module.js:365:17)
根据需要(module.js:384:17)
反对。(/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/index.js:1:63)
在模块处编译(Module.js:460:26)
在Object.Module.\u extensions..js(Module.js:478:10)

包含angular的正确方式是什么?

angular是客户端幻灯片脚本库。Node JS需要加载节点模块,Angular不是节点模块

在HTML页面中,您应该执行以下操作:

<html>
  <head>
    <title>My Angular App!</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script>
    <script src="app.js"></script>
  </head>
  <body ng-app="flapperNews" ng-controller="MainCtrl">
    <div>
      {{test}}
    </div>
  </body>
</html>

我的角度应用程序!
{{test}}
更新: 根据评论。角模

获取angular js文件并将其保存在节点模块文件夹中。Angular仍然是一个客户端库,您需要在HTML中添加一个脚本标记来使用Angular。您不应该在节点代码中要求它。请检查该链接中给出的样本


否则,您可以考虑在客户端使用require js、head js、browserify等

使用webpack版本3.4.1更新AnujYadav的答案:

安装角度:

npm install angular --save-dev
配置(在
webpack.Config.js
文件中):

在html页面中:

<script src="/{your_path}/angular.js"></script>
<script>
    // you can use 'angular' now    
</script>

//现在可以使用“角度”了

我阅读了angular npm页面,它说我可以通过脚本或require(“angular”)将其包括在内。我完全知道angular是客户端。我很好奇为什么模块页面上说它可以通过require()@allencoded使用。你可以在客户端脚本中使用类似的Browserify来使用
require()
。啊,感谢brad,这就把它清除了。我知道angular是一个客户端库,只是对require()了解得不够。我知道我可以通过在html中使用node_modules/angular/angular.js来包含它,但我想做spiffy require()
module.exports = {
    entry: {
        angular: path.resolve(__dirname, './node_modules/angular/angular')
    },
    output: {
        ...
    },
    module: {
        ...
    }
};
<script src="/{your_path}/angular.js"></script>
<script>
    // you can use 'angular' now    
</script>