Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图使用类来保持代码干净-不起作用_Javascript_Class_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Javascript 试图使用类来保持代码干净-不起作用

Javascript 试图使用类来保持代码干净-不起作用,javascript,class,google-cloud-firestore,google-cloud-functions,Javascript,Class,Google Cloud Firestore,Google Cloud Functions,我一直在犯这个错误,我完全不知道该怎么办: TypeError: Visas.list is not a function at /Users/name/Sites/chatbot/functions/index.js:72:28 我遗漏了什么吗?我尝试在我的package.json中添加带有type:method的导入,但它在我身上爆炸了-只允许我使用require index.js const Visas = require("./src/controllers/visas"); con

我一直在犯这个错误,我完全不知道该怎么办:

TypeError: Visas.list is not a function
at /Users/name/Sites/chatbot/functions/index.js:72:28
我遗漏了什么吗?我尝试在我的package.json中添加带有
type:method
的导入,但它在我身上爆炸了-只允许我使用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;
    }
});
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);
            });
    }
}
visas.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;
    }
});
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);
            });
    }
}

如果您在需要后想要使用它,您需要从Visas.js导出
Visas
。nodejs使用commonjs模块语法。将以下内容添加到visas.js的末尾:

module.exports = Visas

如果您在需要后想要使用它,您需要从Visas.js导出
Visas
。nodejs使用commonjs模块语法。将以下内容添加到visas.js的末尾:

module.exports = Visas

在index.js或visa.js中编辑答案在index.js或visa.js中编辑答案