Почему я не получаю данные при движении по маршруту? - PullRequest
0 голосов
/ 12 ноября 2018

Когда я иду по маршруту '/gallery', я хочу получить данные из файла "posts.json".Я получаю данные из файла, используя модуль fs и метод read() для чтения данных из файла posts.json.

В результате я получаю сообщение об ошибке: 'ReferenceError: fs не определен'

Как реализовать показ данных из файла "posts.json" при навигации по маршруту'/gallery' с использованием модуля fs?

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) => {
    const items = db.read();
    res.send(items);
});

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

db.js:

class Database {

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

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

module.exports = Database;

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы забыли написать ключевое слово this, когда пытаетесь получить доступ к атрибуту fs, который вы инициализировали в конструкторе с помощью this.fs = require('fs').

. Вы использовали его для доступа к атрибуту pictures, но неfs

0 голосов
/ 12 ноября 2018

используйте:

this.fs.readFile в вашей функции read вместо fs.readFile.Так как вы потребовали это в конструкторе и присвоили его this.fs;

или require fs модуль в начале db.js

const fs = require('fs');

И используйте егобез this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...