javascript - Express 4.x 路由器和 Angular 有问题吗?

标签 javascript node.js angularjs express

我正在使用 angular.js 测试 Express 4.x,但遇到了一些问题,有人遇到这样的错误吗?

控制台 Chrome:

Resource interpreted as Script but transferred with MIME type text/html: "http://localhost:8080/javascript/main.js". localhost/:5
Uncaught SyntaxError: Unexpected token < main.js:1
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.17/$injector/modulerr?p0=appTmo&p1=Error%3A…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.17%2Fangular.min.js%3A18%3A203) 

我的应用程序非常简单:

服务器.js:

var express = require('express');
var app = express();
var router  = express.Router();
var morgan = require('morgan');

app.use(router);
app.use(morgan('dev'));
app.use(express.static(__dirname+'/public'));

router.get('*',function  (req,res) {
    res.sendfile('public/index.html');
});


app.listen(8080);

index.html:

<html ng-app='app'>
<head>
    <title>App</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js"></script>
    <script type="text/javascript" src="javascript/main.js"></script>
</head>
<body >
    <h1>test</h1>
</body>
</html>

main.js:

var app = angular.module('app',[]);

最佳答案

app.use(router); 移至 app.use(express.static(__dirname+'/public')); 下面。所以你的 server.js 应该像:

var express = require('express');
var app = express();
var router  = express.Router();
var morgan = require('morgan');

app.use(morgan('dev'));
app.use(express.static(__dirname+'/public'));

app.use(router);
router.get('*',function  (req,res) {
    res.sendfile('public/index.html');
});


app.listen(8080);

当您在静态调用之前调用 app.use(router) 时,首先会根据请求调用路由器。 * 匹配所有,因此它将处理所有传入请求。您看到的问题是,针对 main.js 的请求返回了 index.html

关于javascript - Express 4.x 路由器和 Angular 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24124299/

相关文章:

javascript - Angularjs $location 服务显然不解析 url?

javascript - 带有 babel-loader 的 Webpack 无法识别 import 关键字

node.js - 通过 Laravel Forge 服务器上的地址访问 Node.js 应用程序

javascript - angular js或ionic中的动态下拉列表

javascript - Bluebird 无极绑定(bind)链

javascript - PM2 是要在开发过程中使用吗?

javascript - "range"输入定义中的 AngularJS 表达式

javascript - `import type {Node} from ' 有什么 react ';` 以及在 App : () => Node 中的用法

javascript - 当我通过 php 包含 datepicker js 和 css 文件时,包含不起作用,但如果我将所有代码放在单个 php 页面中,则可以工作

javascript - 如何检查变量或属性在 JavaScript 中是否可读?