带有继承的根类中的静态方法返回未定义

时间:2019-05-12 10:52:01

标签: javascript node.js

我试图按照OO模式使用nodejs编写API,但是在将数据从类返回到我的方法时遇到问题。更具体地说,我创建了一个父类和一个扩展父类的子类,然后从另一个文件中的函数发出请求。如果我在类中打印结果,它将为我提供正确的结果,但是当我得到响应时,我将无法定义...我知道这是由于异步调用造成的,但是我真的不知道如何解决它。换句话说,我可以使用Promise或callback来等待响应,如果可以的话,该怎么办?。

我尝试在父类和发出请求的文件上设置回调,我尝试使用.then(rows)但它不起作用,

在父类中,我有类似的东西.. tablename和findBylike是子类上的方法。

static find(conditions) {
        const queryString = `SELECT * FROM ${this.tableName()} WHERE ${this.findBylike(conditions)}`;
        console.log(queryString);
        db.query(queryString, (error, result) => {
            if (error) {
                console.log("result " + error)
                return error;
            } else {
                console.log("result " + result)
                return result;
            }
        })
    }

在我有的孩子班上

    static tableName() {
        return 'listing';
    }

    static columns() {
        return ['name', 'description', 'owner'];
    }

    // Other Listing specific logic goes here
    static findBylike(name) {
        return this.find(`name LIKE '%${name}%' AND status = true`);
    }

然后使用

之类的函数进行调用
router.get('/search', (request, response) => {
    console.log(request.query.like);
    Listing.find(request.query.like).then(result => {
        if (err) {
            console.log("Error completing game: " + err);
            response.sendStatus(500);
        } else {
            response.send(result);
        }
    })

在最后一部分中,我不确定,而我想从查询中获取结果。

0 个答案:

没有答案