Я пытаюсь запросить DynamoDB
для простого экрана входа в систему. Я использую ReactJS
export class Login extends Component {
constructor(props) {
super(props);
this.props = props;
this.state = {
caffeID: "",
password: "",
validUser: false
};
}
validateForm() {
return this.state.caffeID.length > 0 && this.state.password.length > 0;
}
handleChange(event) {
this.setState({
[event.target.id]: event.target.value
});
}
handleSubmit (event){
event.preventDefault();
console.log(this.props);
// console.log("hoooolllla ..Caffe ID is "+this.state.caffeID+" and password is "+this.state.password);
console.log("checking from db");
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
console.log("Caffe ID ==> "+this.state.caffeID);
var params = {
TableName: 'caffeuser',
Key: {'caffeid': this.state.caffeID}
};
var value= docClient.get(params, function(err, data) {
console.log("Querying database..");
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.Item);
}
});
}
render() {
if (this.state.validUser === true) {
console.log("Redirecting to login screen... .");
return <Redirect to='/table' />
};
return (
<div className="Login">
<form onSubmit={this.handleSubmit.bind(this)}>
<FormGroup controlId="caffeID" bsSize="large">
<ControlLabel>Caffe ID</ControlLabel>
<FormControl
autoFocus
type="caffeID"
value={this.state.caffeID}
onChange={this.handleChange.bind(this)}
/>
</FormGroup>
<FormGroup controlId="password" bsSize="large">
<ControlLabel>Password</ControlLabel>
<FormControl
value={this.state.password}
onChange={this.handleChange.bind(this)}
type="password"
/>
</FormGroup>
<Button
block
bsSize="large"
disabled={!this.validateForm()}
type="submit"
>
Login
</Button>
</form>
</div>
);
}
}
export default Login;
Теперь код для подключения и запроса к Dynamodb застрял.
Но если я запускаю тот же фрагмент кода, что и код js автономного узла, он работает отлично.
Вот код узла Js
var AWS = require('aws-sdk');
//Set the region
AWS.config.update({region: 'us-east-2',
accessKeyId: 'xxxxxxxxxxxxxx',
secretAccessKey: 'xxxxxxxxxxxxxx'
});
var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
var params = {
TableName: 'caffeuser',
Key: {'caffeid': 'C0001'}
};
docClient.get(params, function(err, data) {
console.log("Querying database..");
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.Item);
Вот результат из кода узла JS
Querying database..
Success { caffeid: 'C0001', password: 'abc123' }
Не могли бы вы указать мне, где я делаю неправильно? Должен ли я использовать async
- await
для этого сценария?
============================================
Правка 6 ноября 2018 г.,
Я загрузил скриншот запроса.