Попытка использовать классы, чтобы сохранить мой код в чистоте - не работает - PullRequest
0 голосов
/ 08 февраля 2020

Я продолжаю получать эту ошибку, и я абсолютно ошарашен относительно того, что делать:

TypeError: Visas.list is not a function
at /Users/name/Sites/chatbot/functions/index.js:72:28

Я что-то упускаю? Я попытался добавить импорт с type:method в моем пакете. json, и он взорвался - только позволит мне использовать require.

index. js

const Visas = require("./src/controllers/visas");

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const database = admin.firestore();

exports.visas = functions.https.onRequest((req,res) => {
    switch (req.method) {
        case 'GET':
            res.send(Visas.list());
            break;
        case 'PUT':
            res.status(403).send('Forbidden!');
            break;
        default:
            res.status(405).send({error: 'Something blew up!'});
            break;
    }
});

виз. js

class Visas {

    static list() {
        let requirementsData = database.collection('requirements');
        const travelData = requirementsData.doc(req.params.country);

        travelData.get()
            .then(doc => {
                if (!doc.exists) {
                    return res.status(404).send("Can't find a record for this country.");
                } else {
                    const docData = doc.data(),
                        visas = docData.visas;

                    return res.send(visas);
                }
            })
            .catch(err => {
                return res.send('Error getting document' + err);
            });
    }
}

1 Ответ

2 голосов
/ 08 февраля 2020

Вам необходимо экспортировать Visas из виз. js, если вы хотите использовать его по требованию. nodejs использует общий синтаксис js модуля. Добавьте это в конец визы. js:

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