Кнопка входа в мое приложение не работает. Сервер отвечает с 404 на контроллерах

0

Я делаю тестовое приложение, и регистрация пользователя идет хорошо, но моя кнопка входа не будет входить, потому что сервер отвечает на 404 на контроллерах, у которых есть функция входа в систему.

Код для server.js приведен ниже:

var mongoose = require('mongoose');
var bodyParser = require ('body-parser');
var express = require('express');
var multiPart = require('connect-multiparty');
var multipartMiddleware = multiPart();


var app =express();
var authenticationController =       require('./server/controllers/authenticationController');
var profileController = require('./server/controllers/profileController');


mongoose.connect('mongodb://localhost:27017/timeWaste');

app.use(bodyParser.json());
app.use(multipartMiddleware);
app.use('/app',express.static(__dirname + "/app"));
app.use('/node_modules', express.static(__dirname+"/node_modules"));


//Authentication 
app.post ('/users/signup', authenticationController.signup);
app.post('/users/login', authenticationController.login);


//Profile
app.post('/profile/edit', multipartMiddleware, profileController.updatePhoto);

app.post('/profile/updateUsername', profileController.updateUsername);

app.post('/profile/updateBio', profileController.updateBio);

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

app.listen(3000, function() {
    console.log('Listening');
});

Код моего навигационного контроллера, в котором записана функция входа, выглядит следующим образом:

(function(){
    angular.module('TimeSuck')
    .controller('navigationController',["$scope","$state","$http",   function($scope, $state, $http){
        if(localStorage['UserData']) {
            $scope.loggedIn = true;
        }
        else {
            $scope.loggedIn = false;
        }

        $scope.logUserIn = function() {
            $http({
                method: 'POST',
                url:'users/login',
            }).success(function(response){
                localStorage.setItem('UserData', JSON.stringify(response));
            }).error(function(error){
                console.log(error);
            })
        }
    }])
})();

и код для моего html выглядит следующим образом:

<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<link rel="shortcut icon" href="">
<script src="node_modules/angular/angular.js"> </script>
<script src="app/app.js"> </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.js"> </script>
<script src="/app/signup/SignUpController.js"> </script>
<script src="/app/profile/edit-profile-controller.js"> </script>
<script src="/server/controllers/navigationController.js"></script>
<script src="/server/controllers/profileController.js"></script>
</head>
<body ng-app="TimeSuck" ng-controller="SignUpController">
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/index.html"> Deav Blog </a>
</div>
<ul class="nav navbar-nav"> 
<li> <div ng-show="!loggedIn"> 
Email: <input type="text" ng-model="login.email">  Password: <input type="password" ng-model="login.password"> 
<button type="submit" ng-click="logUserIn()"> login </button> <a ui-  sref="signUp"> Create an Account </a> </li>
</ul>
    <div ng-show="loggedIn"> <a ui-sref="editProfile"> </a> </div>
</div>
</nav>

<div class="container">
<div class="jumbotron">
<h1> The Smartphones </h1>
<p> This page features all the smartphones you'd want to buy and use </p>
</div>
</div>
<div ui-view> </div>
</body>
<!-- Libraries -->
<script src="node_modules/ng-file-upload/dist/ng-file-upload-all.js"></script>
<script src="node_modules/ng-file-upload/dist/ng-file-upload-shim.js"></script>
<script src="node_modules/ng-file-upload/dist/ng-file-upload.js"> </script>

Снимок экрана об ошибке: Снимок экрана с ошибкой

Теги:
login-script

2 ответа

0
Лучший ответ

Почему ошибка 404 в консоли

На вашем узловом сервере,

вы определили как этот.

app.use('/app',express.static(__dirname + "/app"));
// its fine if app folder is within your root folder.

означает, что ваши static resources попадают под папку app. Здесь вы, говоря, что ваш JS файл попадает в папку app.

проверьте второй параметр. (__dirname + "/app").

Итак, независимо от того, что вы включаете, это скрипт, он должен содержать путь от app.

например

<script src="/server/controllers/navigationController.js"></script> //its wrong

должен быть

<script src="app/server/controllers/navigationController.js"></script>
  • 0
    Все еще такой же. Я пытался изменить URL. Я также попытался добавить это имя каталога в app.use, и он все еще не находит его, и когда я перемещаю папку сервера в папку приложения, он выдает ошибку на сервере, где модули должны быть импортированы.
  • 0
    Я тоже это пробовал некоторое время назад.
Показать ещё 1 комментарий
0

В вашем service.js пути вашего контроллера следующие:

'./server/controllers/profileController', './server/controllers/authenticationController'

Но в вашем html пути

<script src="/server/controllers/navigationController.js"></script>
<script src="/server/controllers/profileController.js"></script>

Указывают ли они на правильные пути? Pls убеждается, что пути правильные.

  • 0
    Пути, безусловно, правильные.
  • 0
    Консоль говорит, что не может получить этот путь, когда мое приложение хочет получить к нему доступ
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню