Node/Angular 应用程序未捕获的语法错误:意外令牌 < [英] Node / Angular app Uncaught SyntaxError: Unexpected token <

查看:27
本文介绍了Node/Angular 应用程序未捕获的语法错误:意外令牌 <的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在关注 这个节点/angular 教程 并收到以下错误:

I'm following this node/angular tutorial and am getting the following errors:

我正在通过节点引导我的应用程序,它呈现索引页面:

I'm bootstrapping my app through node, which renders index page:

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() 来测试,但它没有被调用.

I'd like Node to handle the initial page load, but Angular to handle the rest of the routing. The problem is here: It doesn't seem my angular routing is working. I put a self-exec fn run() in there to test, but it's not being called.

我只是想测试显示 testpage.html 模板:

I'm simply trying to test display the testpage.html template:

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 < 是什么意思,因为我找不到在任何地方添加了额外的 <.

The angular error isn't very helpful. I'm not sure what Unexpected token < means as I cannot find where I've added an extra < anywhere.

app.get('/', function(req, res) {
    res.send('./public/index.html'); 
});

它应该能够在 bower 组件中找到东西,因为路径是正确的:

It should be able to find the stuff in bower components as the pathing is correct:

root/bower_components/angular/angular.js
root/bower_components/angular-route/angular-route.js

推荐答案

您在服务器上的应用程序文件中缺少一些设置来处理向服务器发出的所有请求.这是一个基本的示例工作 express 文件,您可以对其进行修改以适合您的环境:

You are missing some settings in your app file on the server to handle all of the requests being made to the server. Here is a basic sample working express file, which you can modify to fit your environment:

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 来提供特定目录中的任何内容,无论名称或类型如何.还要记住,Express use 语句是按顺序处理的,并采用第一个匹配项,忽略第一个匹配项之后的任何匹配项.所以在这个例子中,如果它不是 /js/bower_components/css/partials 中的文件 目录,index.html 将被返回.

This file uses express.static to serve any content which is in the specific directory regardless of name or type. Also keep in mind that Express use statements are processed in order, and the first match is taken, any matches after the first are ignored. So in this example, if it isn't a file in the /js, /bower_components, /css, or /partials directory, the index.html will be returned.

这篇关于Node/Angular 应用程序未捕获的语法错误:意外令牌 &lt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆