$ npm install aws-sdk
s3.js
const express = require('express')
const AWS = require('aws-sdk')
var fs = require('fs')
const app = express()
const s3Client = new AWS.S3({
accessKeyId: '',
secretAccessKey: '',
region: 'ap-northeast-1'
})
const params = {
Bucket: 'hogehoge',
Key: 'address.json',
}
s3Client.getObject(params, function(err, data){
if(err){
console.log(err, err.stack);
} else {
var object = JSON.parse(data.Body.toString());
fs.writeFile('hoge.json', JSON.stringify(object), function(err, result){
if(err) console.log('error', err);
});
}
})
const jsonObject = JSON.parse(fs.readFileSync('hoge.json', 'utf8'));
console.log(jsonObject);
app.listen(8000, () => console.log('Server Now Running'));
これをgraphQLに応用すると、mysqlから取得した場合も、connection.queryで一時保存し、jsonを読み込んでfilterで処理できますね。ちょっと冗長ではありますが。
connection.query(
'SELECT * FROM master_zip',
(error, results) => {
var object = JSON.parse(JSON.stringify(results));
fs.writeFile('address.json', JSON.stringify(object), function(err, result){
if(err) console.log('error', err);
});
}
);
var getAddress = function(args){
var zip_code = args.zip_code;
const jsonObject = JSON.parse(fs.readFileSync('address.json', 'utf8'));
return jsonObject.filter(address => {
return address.zip_code == zip_code;
})[0];
}
