(Amplify, динамодаб) не может не получить элемент из динамодб - PullRequest
0 голосов
/ 01 мая 2020

Я использую Amplify & dynamicodb & restAPI.

мой код клиента

async _doLogin(){
 if(this.state.email == null || this.state.email.trim() == ""||
       this.state.pwd == null || this.state.pwd.trim() == "" ){
           alert("fill the forms");
       }
    else{
        const resources = {
           params: {
                email : this.state.email,
                pwd: this.state.pwd
            }
          }

         const response = await API.get('ApiMembers', '/members/login',resources);
    // this.props.navigation.navigate('Home'); 
     }    
}

А мой LambdaCode в Amplify / backend / LambdaMembers равен

 app.get(path + '/login', function(req, res) {

  let getItemParams = {
    TableName: tableName,
    Key: {
      email :req.params.email,
      pwd: req.params.pwd
    }
  }

  dynamodb.get(getItemParams,(err, data) => {
    if(err) {
      res.statusCode = 500;
      res.json({error: 'Could not load items: ' + err.message});
    } else {
      if (data.Item) {
        res.json({success: 'memberInfo', flag: 1, url: req.url, data: data.Item});  // login success:1
      } else {
        res.json({success: 'memberInfo', flag: 0, url: req.url, data: data}) ;// login fail:0
      }
    }
  });

Он не может получить какой-либо элемент из базы данных, хотя он есть.

Итак, я изменил параметры следующим образом.

 let getItemParams = {
TableName: tableName,
Key: {
  email :"xxx@gmail.com",
  pwd: "123456"
}

}

прямой проход для параметра Но он также получает любую вещь.

Я пытался способ передачи параметра следующим образом

const response = await API.get('ApiMembers', '/members/login?'+this.state.email+'&'+this.state.pwd,resources);

Но это то же самое :( в чем моя ошибка? помогите мне, пожалуйста ...

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