yaNastia
@yaNastia

Почему я не получаю данные при переходе по роуту?

Когда я перехожу по роуту '/gallery' я получаю данные из файла 'posts.json'. с помощью модуля 'fs' использую метод 'read()' для чтения данных. В результате у меня скачивается файл с данными, когда перехожу по роуту, а я хочу их отображать на екране) Подскажите, что делаю не так и как это реализовать ?

app.js:
const express = require('express');
const  Database =  require('./db');

const app = express();
const port = 3000;
const  db = new Database();

app.use(express.json());

app.get('/gallery', (req, res) => {
    db.read();
    res.send(db.pictures);
});

app.listen(port, () => {
    console.log(`Example app listening on port ${port}!`);
});


db.js:

class Database {

    constructor(){
        this.fs = require('fs');
        this.pictures = [];

    }

    read() {
        this.fs.readFile('./posts.json', (err, data)=> {
            if(err) {
                throw err;
            }else {
               this.pictures = data;
            }
        });
    }
}

module.exports = Database;
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
@atawerrus
Ты передаешь не содержимое, а файл поэтому он и скачивается, посмотри сам метод реад и fs , читает данные он в замыкании и никуда их не возвращает, то есть тебе нужно прокинуть в свой роут, модуль fs и в замыкание прокинуть res и уже внутри сделать res.send(data);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы