Angularjs 节点/角度应用程序在加载时在所有浏览器中崩溃?
键入URL后,我的应用程序立即在所有浏览器中崩溃。我在后端使用Node,在前端使用Angular(平均堆栈)。我使用Angularjs 节点/角度应用程序在加载时在所有浏览器中崩溃?,angularjs,node.js,Angularjs,Node.js,键入URL后,我的应用程序立即在所有浏览器中崩溃。我在后端使用Node,在前端使用Angular(平均堆栈)。我使用nodemon server.js启动服务器,它告诉我它正在监听端口8080 这是server.js文件 var express = require('express'); var app = express(); var mongoose = require('mongoose'); var Schema = mongoose.Schema; var bodyParser = r
nodemon server.js
启动服务器,它告诉我它正在监听端口8080
这是server.js文件
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bodyParser = require('body-parser');
var path = require('path');
var router = express.Router();
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ 'extended': 'true' }));
app.use(bodyParser.json());
router.get('*', function(req, res) {
res.sendFile(path.join(__dirname + '/public/index.html'));
});
app.listen(8080);
console.log('App listening on port 8080');
-node_modules
-public
--css
--img
--js
---app.js
--views
---list.html
---login.html
--index.html
-package.json
-server.js
这是我的路线
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/login', {
templateUrl: 'public/views/login.html',
controller: 'userController'
});
}]);
控制器如下所示:
app.controller('userController', function($scope) {
$scope.message = "Welcome to my App";
});
视图如下所示:
<section class="card login">
<form>
<div class="textintro">
<h1>Hello!</h1>
<p>Log-in to access group finding services</p>
<p>{{ message }}</p>
</div>
<fieldset>
<input type="email" name="email" placeholder="Email">
<input type="password" name="password" placeholder="Password">
</fieldset>
<button type="submit" class="btn btn-submit">Login</button>
<p>or <a href="#/register">register</a></p>
</form>
</section>
更新
app.controller('userController', function($scope) {
$scope.message = "Welcome to my App";
});
我使用了
“*”
路由上的快速路由器,它阻止了页面崩溃。但是静态文件仍然有一个404:localhost:8080/public/views/list.html
当然,它实际上只需要阅读文档就可以了
嗯
我只需要使用:
app.use(express.static('public'));
然后在我的angular app.js文件中删除前面的/public
,因此:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/views/list.html',
controller: 'listController'
}).
另一个问题是我必须使用expres路由器来防止页面崩溃:
var router = express.Router();
router.get('*', function(req, res) {
res.sendFile(path.join(__dirname + "/public/index.html"));
});
谢谢大家的帮助。观看教程太多,阅读文档不够。除了
index.html
之外,您如何提供静态
资源?e、 g.js
,css
,login.html
我在使用以下语句:app.use(express.static(u dirname+“/public”)代码>。。。另请参见编辑app.get('*',function(req,res){
将为每个请求返回index.html,包括所有模板。您已经满足了app.use(express.static(u dirname+'/public'));
在您的server.js中,这是在app.get…
之前还是之后?app.use语句在app.getupdate your post with full server.js之前