Когда вы используете событие «data», это означает, что вы обрабатываете ответ как поток, и не гарантируется, что он отправит все данные одним блоком. Итак, в событии «данные» вы должны собрать все фрагменты, а в событии «конец» вы должны попытаться проанализировать данные. Также не забудьте проверить response.statusCode на наличие ошибок. Попробуйте это:
app.get("/", function(req, res){
https.get(url, "JSON", function(response){
var data;
response.on("data", function(chunk) {
if (!data) {
data = chunk;
} else {
data += chunk;
}
});
response.on("end", function() {
const currency=JSON.parse(data);
console.log(currency);
res.render("index");
});
});