Nodejs Express不加载脚本文件

我试图通过节点快递运行一个angular度的应用程序。

1文件结构

AngularNode public /core.js /index.html project.json server.js 

2 server.js

 var express = require('express'); var app = express(); app.get('*', function(req, res) { res.sendfile('./public/index.html'); // load the single view file (angular will handle the page changes on the front-end) }); // listen (start app with node server.js) ====================================== app.listen(8000); console.log("App listening on port 8000"); 

3 index.html

 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> <script src="./core.js"></script> ........ 

4 core.js

 angular.module('MySystem',[]) .controller('AppController',['$scope',function($scope){ $scope.Name ="Testing Text"; }]); 

当我试图运行这个应用程序使用node server.js这个, index.html文件得到正确加载,但是这不是检测或加载core.js文件。 我正在收到以下错误

 Uncaught SyntaxError: Unexpected token < core.js:1 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.4.5/$injector/modulerr?p0=MySystem&p1=Error%3…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.4.5%2Fangular.min.js%3A19%3A381) angular.js:38 

现在,当我直接从资源pipe理器打开index.html文件,这是工作相同的代码我从core.js移动到embedded式HTML,在<head><script>块正在工作。

我不确定,为什么core.js在运行节点时没有检测或加载。

经过less许修改就得到了解决scheme

1server.js添加了一行app.use(express.static(__dirname + '/public')); 之后线var app = express();

2来自res.sendfile('./public/index.html');函数更正( res.sendfile('./public/index.html'); res.sendFile('./public/index.html');

现在我可以看到core.js被检测到并正常工作。

app.get('*', function(req, res) {是所有get请求的catch all规则,并且也会匹配./core.js请求,所以对于./core.js你的快速应用程序也会发送html文件。

你应该使用express.static来代替:

 var express = require('express'); var app = express(); app.use(express.static('./public'));