我试图按照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);
}
})
在最后一部分中,我不确定,而我想从查询中获取结果。