错误TS2339:类型“对象”上不存在属性“登录”

时间:2019-04-29 16:55:24

标签: javascript html node.js angular

    **login.js**

    var obj = require("../config/db_properties");
    var conn = require("../config/db_connection");
    var connection = conn.getConnection();
    connection.connect();
    var express = require("express");
    var router = express.Router();
    var myFun = require("../token/token")
    router.post("/",(req,res)=>{
        var uname = req.body.uname;
        var upwd = req.body.upwd;
        connection.query("select * from login_details where uname='"+uname+"' and upwd='"+upwd+"'",
        (err,recordsArray,fields)=>{
            if(recordsArray.length>0){
              var token = myFun("HELLO","JKBDSJJL");
              obj.token = token;
              res.send({"login":"success","token":token});
            }else{
                res.send({"login":"fail"});
            };
        });
    });
    module.exports = router;



    **loginservice.ts**


    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';

    @Injectable({
      providedIn: 'root'
    })
    export class LoginService {   

      constructor(private _http:HttpClient) { }
      authentication(obj:any){
        return this._http.post("http://localhost:8080/login",obj)
      }
    }




    logincomponent.ts

    import { Component, OnInit } from '@angular/core';
    import { LoginService } from 'src/app/services/login.service';
    import { Router } from "@angular/router";
    import { HttpErrorResponse } from '@angular/common/http';

    @Component({
      selector: 'app-login',
      templateUrl: './login.component.html',
      styleUrls: ['./login.component.css']
    })

    export class LoginComponent implements OnInit {

      constructor(private _service:LoginService,private _router:Router) { }
      ngOnInit() {
      }

      public login(obj:any):any{
        this._service.authentication(obj).subscribe(
          (posRes)=>{
            if(posRes.login == "success"){
              window.localStorage.setItem("login_details",JSON.stringify(posRes));
              this._router.navigate(["/dashboard"]);
            }
          },
          (err:HttpErrorResponse)=>{
            if(err.error instanceof Error){
              console.log("client side error")
            }else{
              console.log("server side error")
            }
          }
        )
      }
    }

**login.component.html**

<label style="margin-right:100px">Uname.</label>
<input type="text" [(ngModel)]="uname">
<label style="margin-right:100px">upwd.</label>
<input type="password" [(ngModel)]="upwd">
<br><br>
<button (click)="login({'uname':uname,'upwd':upwd})">login</button>

在这里,我正在创建基于令牌的登录应用程序。我收到此错误 在我运行服务器和角度应用程序之后

src / app / components / login / login.component.ts(21,19)中的错误:错误TS2339:类型“ Object”上不存在属性“ login”。 谁能解决这个错误...?

2 个答案:

答案 0 :(得分:0)

您可以尝试这些方式

if(posRes['login'] == "success"){}

答案 1 :(得分:0)

这可能是因为posRes没有对象登录,可能您需要posRes.data.login,不确定如何设置后端

您应该尝试添加这些控制台语句进行检查

<form action='your route'>
  <input type='hidden' name='_method' value='PUT'>
  //do something.......
</form>