Tôi gặp sự cố Tôi không thể tìm thấy câu trả lời trong tài liệu của Loopback.Thêm bộ lọc vào móc từ xa trước của OneRemote
Giả sử tôi có mô hình Company
và kiểu Employee
. Có mối quan hệ 1Xn giữa Company
và Employees
của nó. Khi /api/Employees
được gọi, máy chủ trả về tất cả các nhân viên.
Tôi chỉ muốn trả lại danh sách nhân viên ở cùng một công ty với người dùng yêu cầu danh sách.
Đối với điều này, tôi tạo ra một cái móc từ xa
Employee.beforeRemote('find', function(context, modelInstance, next) {
var reject = function() {
process.nextTick(function() {
next(null, false);
});
};
// do not allow anonymous users
var userId = context.req.accessToken.userId;
if (!userId) {
return reject();
}
//I get the details of the user who sent the request
//to learn which company does he belong to
Employee.findById(userId, function(err, user) {
if(!context.req.query.filter) context.req.query.filter={};
context.req.query.filter.where = {brandId:user.companyId};
console.log(context.req.query);
next();
});
});
Tôi nghĩ điều này sẽ làm việc mỗi thời gian, nhưng appearantly nó chỉ hoạt động khi tìm thấy đã có một số bộ lọc truy vấn như bao gồm - mặc dù console.log in một đúng đối tượng context.req.query.
Tôi đang thiếu gì? Mọi sự trợ giúp sẽ rất được trân trọng!
Bạn có nói rằng hàm hook 'beforeRemote()' không được gọi khi không có bộ lọc nào được chuyển tới 'find()' hay mã của bạn không hoạt động khi không có bộ lọc nào được cung cấp? – jakerella
Vấn đề là context.req.query.filter bị bỏ qua khi nó không được thiết lập từ yêu cầu của máy khách. Đề nghị của Alex làm việc mặc dù, cảm ơn tất cả các bạn đã giúp đỡ của bạn. –