【问题标题】:Uncaught SyntaxError: Unexpected token < angular.1-2-13.min.js:1Uncaught SyntaxError: Unexpected token < angular.1-2-13.min.js:1
【发布时间】:2015-05-07 19:23:02
【问题描述】:

我是 Angular jS 的新手,而我正在使用节点服务器在本地部署我的应用程序。Bit 在 chrome 浏览器中遇到此错误。

PFB 我的代码

Demo.html

<html ng-app="Demo">
<head>
<script type="text/javascript" src="lib/angular.1-2-13.min.js"></script>
<script type="text/javascript" src="lib/angular-route.1-2-13.min.js">         </script>
</head>
<body ng-controller="DemoController">

USA<input type='radio' name='txt1' ng-model="value" ng-         change="changeValue(value)" value="USA"> Non-USA<input type='radio'   name='txt1' ng-model="value" ng-change="changeValue(value)" value="NUSA">

<select ng-model="selectedItem" ng-options='option.name for option in optionValues'>
</select>
<input type='text' name='txt1' ng-model='txtValue'/>
<input type='button' name='b1' ng-click='takeValue(txtValue)'/>
<a href="#/about">routing</a>
<div ng-view></div>

<script type="text/javascript">
var demo = angular.module( "Demo", ['ngRoute'] );

demo.config(['$routeProvider','$locationProvider', function        ($routeProvider,$locationProvider) {
$routeProvider
// Pages
.when("/about", {templateUrl:      "/Users/smundhe/Desktop/NewProject/Demo2.html",controller:   "Demo2Controller"})
// else 404
.otherwise("/404", {templateUrl: "partials/404.html",controller:  "PageCtrl"});
//$locationProvider.html5Mode(true);
 }]);

demo.controller(
        "DemoController",
        function( $scope ) { 

            $scope.optionValues=[{name:'1'},{name:'2'},{name:'3'},  {name:'4'}];
            $scope.takeValue = function(txtValue){
                alert(txtValue);

            }
            $scope.changeValue=function(value){
                alert(value);
                if(value=="USA"){
                    $scope.optionValues=[{name:'1'},{name:'2'}, {name:'3'},{name:'4'}];
                }
                else if(value=="NUSA"){
                    $scope.optionValues=[{name:'A'},{name:'B'},   {name:'C'},{name:'D'}];
                }
            }

        });

demo.controller(
        "Demo2Controller",
        function( $scope ) { 

            $scope.optionValues=[{name:'1'},{name:'2'},{name:'3'},{name:'4'}];

            alert('hiii');
        });
</script>


server.js

// set our port
var express = require('express');
var app = express();
var bodyParser     = require('body-parser');
var methodOverride = require('method-override');
var port = 3000; 

app.use(bodyParser.json()); 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); 

app.use(bodyParser.urlencoded({ extended: true })); 
app.use(methodOverride('X-HTTP-Method-Override')); 
app.get('/*', function(req,res)
{
console.log('sending file: ' + req.url);
res.sendfile(__dirname  + '/Demo.html');
});
app.listen(port);               

有人可以帮我解决这个问题吗?

提前谢谢..

【问题讨论】:

标签: angularjs


【解决方案1】:

你的问题出在这一行:

app.get('/*', function(req,res)
{
  console.log('sending file: ' + req.url);
  res.sendfile(__dirname  + '/Demo.html');
});

这基本上是说对于任何传入的 GET 请求,总是发回Demo.html。结果,当您页面的&lt;script&gt; 标记请求angular.min.js 时,它会得到Demo.html,然后浏览器会尝试将其作为javascript 文件运行,从而引发“意外&lt;”错误。

相反,您应该执行以下操作:

var serveStatic = require('serve-static');
app.use(serveStatic(__dirname, {'index': ['Demo.html']}))

这将基本上提供任何请求的文件,如果没有文件被请求(即/,则将返回Demo.html)。

注意您需要npm install --save serve-static

请参阅the serve-static docs 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-04
    • 2016-09-19
    • 2017-11-24
    • 1970-01-01
    • 2018-06-23
    • 2017-05-30
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多