Node / Angular应用程序未捕获SyntaxError:意外的标记<
我正在关注这个节点/angular度教程,并得到以下错误:
我通过节点引导我的应用程序,该节点呈现索引页面:
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来处理其余的路由。 问题在这里:似乎我的angular度路由没有工作。 我在那里放了一个自我执行的run()
来testing,但是没有被调用。
我只是试图显示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' }); } ]);
angular度误差不是很有帮助。 我不知道什么Unexpected token <
手段,因为我无法find我已经添加了一个额外的<
任何地方。
编辑:
app.get('/', function(req, res) { res.send('./public/index.html'); });
它应该能够find凉亭组件中的东西,因为path是正确的:
root/bower_components/angular/angular.js root/bower_components/angular-route/angular-route.js
您在服务器上的应用程序文件中缺less一些设置,以处理对服务器发出的所有请求。 这里是一个基本的示例工作快速文件,您可以修改以适应您的环境:
var express = require('express'); var app = express(); app.use('/js', express.static(__dirname + '/js')); app.use('/bower_components', express.static(__dirname + '/../bower_components')); app.use('/css', express.static(__dirname + '/css')); app.use('/partials', express.static(__dirname + '/partials')); app.all('/*', function(req, res, next) { // Just send the index.html for other files to support HTML5Mode res.sendFile('index.html', { root: __dirname }); });
此文件使用express.static
来提供特定目录中的任何内容,而不pipe名称或types如何。 另请注意,Express使用语句按顺序处理,并且首先匹配,第一个匹配被忽略后的任何匹配。 因此,在本例中,如果它不是/js
, /bower_components
, /css
或/partials
目录中的文件,则会返回index.html
。