Я использую 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);
Но это то же самое :( в чем моя ошибка? помогите мне, пожалуйста ...