2016-07-23 156 views
0

我遵循“MEAN Machine”一书,我试图用Express创建一个Angular,但我一直跑到这个错误,当我打电话Angular.min.js:Angular 1.5.x“angular.min.js:1 Uncaught SyntaxError:Unexpected token <”Error

"Uncaught SyntaxError: Unexpected token <"

我一直在寻找周围一小时左右,现在并没有能够解决它。

Folder Structure

这里是我的快递编号:

var express = require('express'), 
    app = express(), 
    bodyParser = require('body-parser'), 
    morgan = require('morgan'), 
    cors = require('cors'), 
    path = require('path'), 
    config = require('./config.js'); 

app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 
app.use(cors()); 
app.use(morgan('dev')); 

app.use(express.static(__dirname + '/public')); 

app.get('*', function(req, res) { 
    res.sendFile(path.join(__dirname + '/public/app/index.html')); 
}); 

app.listen(config.devPort); 
console.log('Running on ' + config.devPort); 

这里就是我的index.html,其中角被称为:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Homepage</title> 
     <base href="/"> 
    </head> 

    <body ng-app="sample"> 
     <h1>Welcome to the homepage!</h1> 
     <div ng-controller="ScheduleCtrl as schedule"> 
      <h1 ng-bind="schedule.test"></h1> 
     </div> 

     <!-- inject:js --> 
     <script src="/public/assets/lib/angular/angular.min.js"></script> 
     <script src="/public/app/app.js"></script> 
     <script src="/public/app/modules/schedule/schedule.controller.js"></script> 
     <!-- endinject --> 
    </body> 
</html> 

这里的app.js文件:

(function() { 
    'use strict'; 

    angular 
     .module('sample', []); 

})(); 

这里的schedule.controller.js文件:

(function() { 
    'use strict'; 

    angular 
     .module('sample'), 
     .controller('ScheduleCtrl', ScheduleCtrl); 

    ScheduleCtrl.$inject = []; 

    function ScheduleCtrl() { 
     var vm = this; 

     vm.test = "Hello World!"; 
    }; 
})(); 

编辑: 我检查了我的控制台和文件的路径,给我304:

GET/304 1.934 ms - - 
GET /public/assets/lib/angular/angular.min.js 304 2.262 ms - - 
GET /public/app/app.js 304 2.578 ms - - 
GET /public/app/modules/schedule/schedule.controller.js 304 2.855 ms - - 
+0

好像你有一个额外的'''在某处。尝试使用非缩小版本的Angular,错误输出会告诉你它抱怨的行。 – Lex

+0

@Lex我将它切换到非缩小版本,但错误输出不会告诉我它抱怨的行。错误输出与缩小版本相同。 – mcjc4

+0

你可以发布一些'schedule.controller.js'吗?你拥有所有的关键来诊断这个问题,并且错误信息非常清楚,有一个'<'不是所期望的。 – Lex

回答

0

尝试把脚本头标记,而不是脚本前体标记(或标记之前),你使用AngularJS语法(NG-应用等)包含

+0

感谢您的回复,但我将我的脚本标记移动到头标记并且错误仍然出现。 – mcjc4

+0

阿哈你在身体标记之前尝试过吗?我也只是注意到,你是否在脚本中定义了角度模块和控制器? –

+0

在app.js文件中,我已经将模块定义为: angular.module('sample',[]); 而控制器已在schedule.controller.js文件中设置 – mcjc4

0

这可能是错误:

angular 
    .module('sample'), <-- this comma should not be here 
    .controller('ScheduleCtrl', ScheduleCtrl); 
+0

啊,我已经删除了逗号,但错误仍然显示。 – mcjc4

+0

您确定更新后的.js文件正在被加载,您的浏览器不只是从缓存中提取? – Lex

相关问题