Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Javascript &引用;未能实例化模块';app&x27;由于;在角叠加和平均叠加中_Javascript_Angularjs_Node.js_Express_Pug - Fatal编程技术网

Javascript &引用;未能实例化模块';app&x27;由于;在角叠加和平均叠加中

Javascript &引用;未能实例化模块';app&x27;由于;在角叠加和平均叠加中,javascript,angularjs,node.js,express,pug,Javascript,Angularjs,Node.js,Express,Pug,所以我最近用express节点jade和angular来处理meanstack;事实上,我认为玉有一个问题;我为复杂性道歉,但我真的搞不懂,希望从外面看到一些不同的观点;因此,情况如下: 信息本身: Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: Error: [$injector:nomod] Module 'app' is not available! You either miss

所以我最近用express节点jade和angular来处理meanstack;事实上,我认为玉有一个问题;我为复杂性道歉,但我真的搞不懂,希望从外面看到一些不同的观点;因此,情况如下:

信息本身:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:

Error: [$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

http://errors.angularjs.org/1.3.3/$injector/nomod?p0=app
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:63:12
好,我们转到angular js的63:
返回新的ErrorConstructor(消息)->好吧,它什么也没说,但有人认为问题真的隐藏在什么地方

    at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:1747:17
转到1747:
throw$injectorminer('nomod',“模块”{0}不可用!您要么拼写错误“+
->”,这里又没什么可理解的;那么您觉得如何

    at ensure (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:1671:38)
    at module (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:1745:14)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:4041:22
    at forEach (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:322:20)
    at loadModules (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:4025:5)
    at createInjector (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:3951:11)
    at doBootstrap (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:1434:20)
    at bootstrap (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js:1455:12)
http://errors.angularjs.org/1.3.3/$injector/modulerr?p0=app&p1=Error%3A%20%….googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.3%2Fangular.js%3A1455%3A12) 
文件结构:

_client
   vendor //for bower installations
   styles 
   application
      angularCore.js

_server
   views
      core.jade
      states
         home.html

server.js
>

_服务器/views/core.jade:

doctype html
html(lang="en")
  head
    link(rel="shortcut icon", href="favicon.ico", type="image/x-icon")
    link(rel="stylesheet", href="styles/bootstrap.css")
    link(rel="stylesheet", href="vendor/toastr/toastr.min.css")
    link(rel="stylesheet", href="styles/core.css")

  body(ng-app='app')
    div(ng-view)
     h1 Some text

    script(type='text/javascript', src='vendor/jquery/dist/jquery.min.js')
    script(type='text/javascript', src='https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.js')
    script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular-route.js')
    script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular-resource.js')
    script(type='text/javascript', src='./application/angularCore.js')
_client/application/angularCore.js:

var app = angular.module('app', ['ngResource', 'ngRoute']);

app.config(function($locationProvider, $routeProvider) {
  $locationProvider.html5mode(true);
  $routeProvider
    .when('/', {
      templateUrl: '/states/home',
因此,正如我所看到的,由于一个问题,states/home.html没有加载到网络选项卡中

      controller: 'controllerMain'
    });
  }


app.controller('controllerMain', function($scope) {
  $scope.myVar = "Hello peolm";
});
_服务器/views/states/home.html:

<h1>That's the state home</h1>
<h2>{{myVar}}</h2>
特快

app.get('/states/:Path', function(req, res) {
   res.render('states/' + res.params.Path);
 });
收到home.html我们很好,但是home.html没有呈现,甚至没有加载,我不知道是因为什么; 除“home.html”外,所有通过浏览器、客户端下载的文件


这就是主要的问题:所有的都下载了,为什么它找不到“app”模块?

乍一看,我觉得你的.html文件不见了

app.get('/states/:Path', function(req, res) { 
   res.render('states/' + res.params.Path + '.html');
});
真是好笑


问题就在这里:
$locationProvider.html5mode(true);
好吧,没有html5mode,但是html5Mode;

我添加了,但它不是一个解决方案:(谢谢你的回答,不幸的是我没有投票的声誉回答你是否将你的视图引擎添加为app.set('view engine',jade'));然后你不需要这个.html,而是将home.html重命名为home.jadeyeah,这已经完成了;但后来我意识到可能是jade出了问题,所以我切换到html,在
\u client/app/
目录或
/application/
中呈现angularCore.js
文件中的交易的一部分。错误很明显,它不能拒绝d应用程序模块,这似乎表明脚本加载不正确。在src路径中看到
/
是不常见的。哦,这是我的错,它实际上在“应用程序”中;javascript文件的src应该与应用程序的根相关,而不是与jade文件相关,因此
/
似乎没有意义。如果浏览到
http://youserver.com/application/angularCore.js
?如果是这样,我怀疑删除
会修复脚本加载。在“网络”选项卡上的开发人员控制台中,您应该能够看到返回404的文件,从而导致模块不可用。“/”不要进行更改时,我尝试了所有的更改以找到解决方案;所有文件都是通过浏览器、客户端下载的,除了“home.html”;所以这就是主要问题:所有文件都是下载的,为什么它找不到“app”模块?
app.get('/states/:Path', function(req, res) {
   res.render('states/' + res.params.Path);
 });
app.get('/states/:Path', function(req, res) { 
   res.render('states/' + res.params.Path + '.html');
});