Riot api v3 экспортирует результаты в txtFile
Я пытаюсь работать над проектом колледжа, в результате чего я запрашиваю API RIOT и возвращаю необходимые результаты. Ниже вы можете увидеть мой код. По какой-то причине я продолжаю получать сообщение об ошибке, не могу прочитать идентификатор свойства на undefined, и оно ссылается на строку: data.id = json [s_toSearch].id;
По какой-то причине идентификатор поля не распознается как [s_toSearch].id либо не распознает, что это поле существует, либо не распознает, что там есть какие-либо данные для передачи. Я перешел на страницу результатов вручную и при сохранении страницы автоматически пытается сохранить ее как искомое имя пользователя, а при просмотре исходного кода поле json называется id, поэтому я в тупике. Моей следующей идеей было посмотреть, экспортировать ли результаты во временный текстовый файл, а затем запросить результаты JSON в этом, но я не могу найти способ сделать это легко, пожалуйста, помогите.
мой файл server.js:
var express = require('express');
var app = express();
var exphbs = require('express-handlebars');
var request = require('request');
var async = require('async');
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
app.get('/', function(req, res){
var data = {};
var api_key = 'RGAPI-a6569690-ce3e-4573-8bad-93b6d29a1e0e';
var s_toSearch = 'Neodreadlord';
var URL = 'https://euw1.api.riotgames.com/lol/summoner/v3/summoners
/by-name/' + s_toSearch + '?api_key=' + api_key;
async.waterfall([
function(callback) {
request(URL, function(err, response, body){
if(!err && response.statusCode == 200){
var json = JSON.parse(body);
data.id = json [s_toSearch].id;
data.name = json [s_toSearch].name;
callback(null, data);
} else {
console.log(err);
}
});
}
],
function(err, data){
if(err) {
console.log(err);
return;
}
res.render('index', {
info: data
});
});
});
var port = Number(process.env.PORT || 3000);
app.listen(port);
// мой файл index.handlebars:
{{info.name}} has an id of {{info.id}};
// и сообщение об ошибке в терминале:
neo@Zion:~/ProjectLOL$ nodemon server.js
[nodemon] 1.12.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server.js`
/home/neo/ProjectLOL/server.js:24
data.id = json [s_toSearch].id;
^
TypeError: Cannot read property 'id' of undefined
at Request._callback (/home/neo/ProjectLOL/server.js:24:38)
at Request.self.callback (/home/neo/ProjectLOL/node_modules
/request/request.js:186:22)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.<anonymous> (/home/neo/ProjectLOL/node_modules/request
/request.js:1163:10)
at emitOne (events.js:77:13
at Request.emit (events.js:169:7)
at IncomingMessage.<anonymous> (/home/neo/ProjectLOL/node_modules
/request/request.js:1085:12)
at IncomingMessage.g (events.js:260:16)
at emitNone (events.js:72:20)
[nodemon] app crashed - waiting for file changes before starting...