【发布时间】:2015-10-08 08:24:57
【问题描述】:
我正在关注this node/angular tutorial 并收到以下错误:
我正在通过节点引导我的应用程序,它呈现索引页面:
module.exports = function(app) {
app.get('*', function(req, res) {
res.sendfile('./public/index.html');
...
});
呈现:
<html ng-app="DDE">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/main.js"></script>
</head>
<body>
This is the index page
<div ng-view></div>
我希望 Node 来处理初始页面加载,而 Angular 来处理其余的路由。问题就在这里:我的角度路由似乎不起作用。我在其中放了一个 self-exec fn run() 进行测试,但它没有被调用。
我只是想测试显示testpage.html 模板:
app.js 文件:
angular
.module('DDE', [
'ngRoute'
])
.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/test', {
run : (function() {
alert('hit');
})(),
templateUrl: '../html/partials/testpage.html'
}).
otherwise({
redirectTo: '/test'
});
}
]);
角度误差不是很有帮助。我不确定Unexpected token < 是什么意思,因为我找不到在哪里添加了额外的<。
编辑:
app.get('/', function(req, res) {
res.send('./public/index.html');
});
当路径正确时,它应该能够在 bower 组件中找到东西:
root/bower_components/angular/angular.js
root/bower_components/angular-route/angular-route.js
【问题讨论】:
-
Unexpected token <表明angular.js是 HTML 文档,而不是 JavaScript 文件。检查您提供的服务是您认为为请求提供的服务。 -
app.get('*', function(req, res) { res.sendfile('./public/index.html');将为 每个 请求发送index.html到服务器;对 .js 文件的请求、对 .jpg 或 .png 文件的请求、一切。 -
@Claies 好的,我已将其更改为
app.get('/',和res.send('./public/index.html');,请参见上文 -
好吧,那么您还需要一个快速命令来发送 .js 文件、任何图像文件等。通过此更改,您不再为这些请求发送
index.html发送任何东西。 -
@Claies 我很困惑。如果 node 正在提供 index.html,并且这个 html 文件包含对它需要的
js文件的引用/请求,为什么我需要一个额外的 express 命令?
标签: javascript angularjs node.js