2017-01-31 1 views
1

로그인 컨트롤러 -컨트롤러 페이지에서 페이지를 리디렉션하는 방법은 무엇입니까? - Nodejs

var myapp = angular.module('myApp', ['ngRoute']); 

    myapp.config(["$routeProvider", function($routeProvider) { 
     $routeProvider 

     .when('/addusers', { 
      controller: 'addusersctrl', 
      templateUrl: '../views/addusers.html' 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }); 

    }]); 

    myapp.controller('loginctrl', ['$scope', '$route', '$http', '$routeParams', '$location', 
        function($scope, $route, $http, $routeParams, $location) { 
     console.log("im a controller"); 



     $scope.login = function() { 
      //console.log($scope.user); 

      // $http.post('/login',$scope.user).success(function(response){ 
      // console.log(response); 
      // }); 

      $http({ 
        method: 'post', 
        url: '/login', 
        data: $scope.user 
       }).then(function successCallback(response) { 
        // this callback will be called asynchronously 
        // when the response is available 
        console.log('Inside controller'); 

        // console.log(response.data+" "+location); 
        //$window.location.href = 'addusers.html'; 
        //window.location.href = '/views/addusers.html'; 
        $location.path("/addusers"); 
       }, function errorCallback(response) { 

        console.log(response.data); 
        // called asynchronously if an error occurs 
        // or server returns response with an error status. 
       }); 

     }; 
    }]); 


    myapp.controller('addusersctrl',['$scope','$http',function($scope,$http){ 
     console.log("im a controller"); 



     $scope.login = function() { 
      //console.log($scope.user); 

      // $http.post('/login',$scope.user).success(function(response){ 
      // console.log(response); 
      // }); 

      $http({ 
        method: 'post', 
        url: '/login', 
        data: $scope.user 
       }).then(function successCallback(response) { 
        // this callback will be called asynchronously 
        // when the response is available 

        console.log(response.data); 
        //$window.location.href = 'addusers.html'; 

       }, function errorCallback(response) { 

        console.log(response.data); 
        // called asynchronously if an error occurs 
        // or server returns response with an error status. 
       }); 

     }; 
    }]); 

Server.js - 우리가 ADDUSERS 페이지로 로그인에서 이동하려고 할 때마다

 var express = require('express') 
     var app = express() 
     var mongojs = require('mongojs'); 
     var db = mongojs('userlogin',['userlogin']); 
     var bodyParser = require('body-parser'); 
     // 
     var exphbs = require('express-handlebars'); 
     var path = require('path'); 
     var routes = require('./routes/index'); 
     var users; 
     users = require('./routes/users'); 
     app.set('views', path.join(__dirname, 'views')); 
     app.engine('html', exphbs({defaultLayout:'layout'})); 
     app.set('view engine', 'html'); 
     app.use(express.static(path.join(__dirname,'public'))); 
     app.use(bodyParser.json()); 
     //var Client = require('node-rest-client').Client; 
     //var client = new Client(); 
     var request = require('request'); 




     app.post('/login',function(req, res){ 
      console.log(req.body); 

     // // direct way uncomment this and try to http request 

     // client.post("http://192.168.1.6:8080/RestTGRP/TGRP/checkAPI", function (data, response) { 
     //  // parsed response body as js object 
     //  //console.log(data); 
     //  // raw response 
     //  console.log(response); 
     //  //res.send(response); 
     // }); 

      // this is another method to call client 

      var options = { 
       uri : 'http://192.168.1.6:8080/RestTGRP/TGRP/checkAPI', 
       method : 'post' 
      }; 
      var resss = ''; 
      request(options, function (error, response, body) { 
       if (!error && response.statusCode == 200) { 
        resss = body; 
       } 
       else { 
        resss = 'Not Found'; 
       } 
       console.log(body); 
       //res.json(resss); 

      }); 



// this is to validate the user 



    db.collection('userlogin').findOne({name: req.body.name},  function(err, user) { 
        console.log('inside validation'); 
        console.log(err); 
        console.log(user); 
        // In case the user not found 
        if(!user) { 
         console.log('THIS IS ERROR RESPONSE') 
         res.json("user not found!") 
        } 
        else{ 
         console.log('User found '); 

         if (user.password === req.body.password){ 
          console.log('User and password is correct'); 
          // alert('inside user login'+res); 
          res.json("login successfully"); 
          //res.render('addusers'); 
         } else { 
          console.log("Credencials wrong"); 
          res.json("wrong password"); 
         } 
        }    
      }); 
      }); 

      app.use('/', routes); 
      app.use('/users', users); 

      app.listen(8000, function(){ 
       console.log("running successfully in 8000"); 




      }); 

, 우리는 404 페이지를 찾을 수 없음 오류를 얻고있다. 컨트롤러 페이지에서 페이지를 리디렉션하는 방법은 무엇입니까?

+0

는 –

+0

을 우리에게 솔루션을 제공 확인 예를 들어 templateUrl : 'app/main/views/addusers.html' – rajshree

+0

완료주는 템플릿 URL을 재구성하는 템플릿 URL –

답변

1

경로 구성에서 templateUrl을 제공 한 방법 일 가능성이 큽니다. 제 제안은 docroot를 찾는 것입니다, nodejs의 경우 프로젝트 폴더 일 가능성이 높으며 "../"스타일 표현이 아니라 templateUrl의 docroot에 상대적인 완전한 경로를 제공하십시오. 당신이하려는 것은 로그인 컨트롤러를 기준으로 templateUrl을 제공하는 것입니다. 예를 들어

프로젝트 구조 인 경우 :

nodeproject/ 
     |-> js/ 
     |-> loginPage/  
       |-> views/ 

는 routeConfig에있는 당신의 templateUrl은 다음과 같습니다

myapp.config(["$routeProvider", function($routeProvider) { 
    $routeProvider 

    .when('/addusers', { 
     controller: 'addusersctrl', 
     templateUrl: '/loginPage/views/addusers.html' 
    }) 
    .otherwise({ 
     redirectTo: '/' 
    }); 

}]); 
+0

전체 URL . 이 경우 "nodeproject"는 docroot이고 templateUrl은 templateUrl이어야합니다 : '/loginPage/views/addusers.html' – Nandan

관련 문제