koa接收post参数返回数据库数据时候数据返回慢了导致404
我是用koa-generator koa应用生成器,在获取数据库数据时,我拿到数据库数据设置body的时候,这个时候就会提示404。
这个是操作数据库简单弄的一个函数:
exports.query = function (arr=null) {
if (!arr.sql) {
return false;
};
new Promise((resolve, reject) => {
pool.getConnection(function (err, connection) {
connection.query(arr.sql, (error, results, fields) => {
resolve(results)
if (error) throw error;
})
});
}).then(res => {
arr.get && arr.get(res);
}).catch(err => {
console.log(err)
})
};
这个是设置body的代码:
router.post("/pid", function* (next) {
var _this = this;
db.query({
sql: "SELECT id FROM book", get: res => {
_this.body = res;
//控制台能打印出res是数据库的数据
}
});//这样404
new Promise((resolve, reject) => {
db.query({
sql: "SELECT id FROM book", get: res => {
resolve(res)
}
});
}).then(res => {
_this.body = res;
}).catch(err => {
console.log(err)
})//这样也是404
});
问题我觉得应该是数据库数据还没返回过来,前端就已经请求完成。 这个问题请问大佬们怎么解决。第一次用这个,实在是不知道怎么解决。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
query这个函数封装得太烂了,再改改吧。
试试koa2的写法
应该是koa-generator用法出了问题
koa2
koa1