【发布时间】:2016-11-27 09:50:05
【问题描述】:
我正在关注“MEAN Machine”一书,我正在尝试使用 Express 设置 Angular,但在调用 Angular.min.js 时一直遇到此错误:
"Uncaught SyntaxError: Unexpected token <"
我已经搜索了一个小时左右,但无法修复它。
这是我的快速代码:
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 中调用 Angular 的地方:
<!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 - -
【问题讨论】:
-
好像你在某处多了一个
<。尝试使用 Angular 的非缩小版本,错误输出应该会告诉你它抱怨的那一行。 -
@Lex 我将它切换到非缩小版本,但错误输出并没有告诉我它抱怨的行。错误输出与缩小版相同。
-
你能发一点
schedule.controller.js吗?您掌握了诊断此问题的所有关键,并且错误消息非常清楚,有一个<不应该出现。 -
@Lex 我已经编辑了我的帖子并添加了 schedule.controller.js 文件。
-
那我就没主意了。抱歉,我无法提供帮助。