Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 节点/角度应用程序在加载时在所有浏览器中崩溃?_Angularjs_Node.js - Fatal编程技术网

Angularjs 节点/角度应用程序在加载时在所有浏览器中崩溃?

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

键入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 = 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之前