Написание методов в асинхронном / ожидающем режиме - PullRequest
0 голосов
/ 03 марта 2019

Это проект «Пожертвование книг», и я пытаюсь написать некоторые методы async / await .

BooksRepo: класс, содержащий все методы

class BooksRepo {
    constructor() {
        this.fse = require('fs-extra');
        this.catalogFilePath = '../data/catalog.books.json';
    }


    async readFileAsync(filePath) {
        let data = await this.fse.readFile(filePath);
        let parsedData = await JSON.parse(data);

        return parsedData;
    }



    async getBook(bookName) {
        let books = await this.readFileAsync(this.catalogFilePath);
        let book = books.find(b => b.title == bookName);
        return book;
    }

}

catalogFile: Пример структуры

[
  {
    "_id": 1,
    "title": "Unlocking Android",
    "isbn": "1933988673",
    "pageCount": 416,
    "publishedDate": {
      "$date": "2009-04-01T00:00:00.000-0700"
    },
    "thumbnailUrl": "https://s3.amazonaws.com/AKIAJC5RLADLUMVRPFDQ.book-thumb-images/ableson.jpg",
    "shortDescription": "Unlocking Android: A Developer's Guide provides concise...",
    "longDescription": "Android is an open source mobile phone platform based on the Linux operating ...",
    "status": "PUBLISH",
    "authors": [
      "W. Frank Ableson",
      "Charlie Collins",
      "Robi Sen"
    ],
    "categories": [
      "Open Source",
      "Mobile"
    ]
  },

приложение: класс, вот как я пытаюсь вызвать методы

let booksRepo = new BooksRepo();
    booksRepo.readFileAsync(booksRepo.catalogFilePath).then(result=> console.log(result));

    let books = booksRepo.getBook("Android in Action, Second Edition");

    console.log(books)

Я получаю эту ошибку BooksRepo не определено

Я не знаю, в чем проблема

1 Ответ

0 голосов
/ 03 марта 2019

Похоже, у вас проблема с экспортом / импортом.

Сначала вы должны экспортировать класс в тот файл, в котором он находится:

module.exports = BooksRepo;

Затем импортировать его вфайл, в котором он используется:

var BooksRepo = require('./books-repo');

В качестве альтернативы:

export default class BooksRepo { ...

И

import BooksRepo from './books-repo.js';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...