我有一个controller / user.js文件,可以使用service / user.js中的函数获取数据
从服务中的getUsers函数,我不能返回超过1的值。例如,我想返回return{User,pages}
。但是,我在返回return{User,pages}
时出错
以下是我在使用return{User,pages}
userService.getUsers(...)。则不是函数
controller / user.js
function getUsers(req, res){
userService.getUsers({
page_no:req.body.page_no,
previous:req.body.previous
}
)
.then(data => res.send(data));
};
service / user.js
const getUsers = function (data) {
let limit = 10; // number of records per page
let offset = 0;
let page = data.page_no; // page number
data = Users.findAll({where: {
DeletedAt: {
$eq: null
}
}})
const pages = Math.ceil(data.count / limit);
offset = limit * (page - 1);
const User = Users.findAll({
attributes: ['id', 'first_name', 'last_name', 'role_id','login','is_active'],
limit: limit,
order: [
['createdAt', 'DESC']
],
offset: offset,
$sort: { id: 1 },
where: {
DeletedAt: {
$eq: null
}
}
})
return User
};
答案 0 :(得分:1)
看起来您正在使用一些返回Promise
的ORM。
当您仅返回User
时,User
的类型是Promise
(可能是因为您没有收到错误),所以该函数将返回一个promise,您可以调用{ {1}}方法。
但是,当您返回.then
时,您没有返回承诺,但是{ User, pages }
和对象没有Object
方法,这就是为什么您会得到错误的原因。
返回对象then
时,可以更改代码以提取promise并在其上调用then方法:
{ User, pages }