У меня проблемы с возвратом логического значения с моего сервера nodejs в мой угловой сервис - PullRequest
0 голосов
/ 21 мая 2019

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

Воткод сервера

var loggedin = Boolean;
app.post('/auth', function(request,response){
var username = request.body.username;
var password = request.body.password;
console.log(username);
console.log(password);
if(username && password){
connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username,password], function(error,results,fields){
    if (results.length > 0){
        request.session.loggedin = true;
        request.session.username = username;
        // response.redirect('/home');
        console.log("Credentials are correct!")
        //res.send(result);
        loggedin = true;
        response.send(loggedin)
    } else{
        response.send('Incorrect login details!');
        console.log("Wrong credentials!")
        loggedin = false;
    }
    response.end();

});
} else {
    response.send('Please enter your username and or password');
    response.end();
}});

угловой компонент

export class LoginbarComponent implements OnInit {
  constructor(private modalService: NgbModal,private service:PostService{}

  Logres: Boolean = false;


  ngOnInit() {

  }

  private obj : any  = {"Email": "", "pass" : ""};
test(){

this.service.PostLogin(this.obj.Email,this.obj.pass);
console.log(this.obj.Email,this.obj.pass);

this.service.GetResponse().subscribe(logres =>{
  this.Logres=logres;
})}

угловой сервис

GetResponse(){
return this.http.get<Boolean>('http://localhost:3000/auth')}

полный сервисный код

    import { Injectable } from '@angular/core';
    import { HttpClient, HttpHeaders } from '@angular/common/http';
    import { DatabaseService } from './database.service';
    import { ForumPost } from './post';

    @Injectable({
      providedIn: 'root'
    })
    export class PostService {
      topics: string[] = [];
      threads: string[] = [];
      posts: PostService[] = [];


      GetTopic() {
        return this.http.get<String>("http://localhost:3000/gettopics")
      }

      Getthread(thread) {
        return this.http.get<String> 
       (`http://localhost:3000/getthread/${thread}`)
      }

      Getpost(post) {
        return this.http.get<ForumPost(`http://localhost:3000/getthread/${post}`)

      }

      GetResponse(){
        return this.http.get<Boolean>('http://localhost:3000/auth')

      }

      PostLogin(username,password){
        console.log("Username:" +username);
        console.log("Password:" +password);
         this.http.post("http://localhost:3000/auth",

         {"username":username,"password":password}).subscribe((data)=>{
        console.log(data)
      });
      }



  constructor( private http: HttpClient,
    private databaseService: DatabaseService) { 
  }
}


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

1 Ответ

0 голосов
/ 22 мая 2019

Вы можете изменить свой код на это. Потому что вы должны вернуть данные обратно клиенту

loggedin = true;
return res.send(loggedin);

Пожалуйста, дайте мне знать, если у вас все еще есть проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...