我正在使用带有快速会话的环回来存储cartId。
但我需要在请求会话中注入cartId才能使我的测试工作。
所以在我的远程方法上我有
Cart.get = function (req, cb) {
Service.getCart(req, req.session.cartId)
.then(function (result) {
cb(null, result);
})
.catch(cb);
};
Cart.remoteMethod(
'get',
{
accepts: { arg: 'req', type: 'object', 'http': { source: 'req' } },
returns: { arg: 'cart', type: 'object', root: true },
http: { path: '/', verb: 'get' }
}
);
如何强制req.session.cartId进行测试?
由于
答案 0 :(得分:0)
如果我理解你的情况,你可以做类似下面代码的事情,你只需要在你的get方法定义中添加另一个param(cardId):
Cart.remoteMethod('get',{
accepts: [
{ arg: "caseId", type: "number", http: {source:'path'} },
{ arg: 'req', type: 'object', http: { source: 'req' } }
],
returns: { arg: 'cart', type: 'object', root: true },
http: { path: '/:caseId/getCart', verb: 'get' }
});
答案 1 :(得分:0)
您可以简单地使用“get”远程方法并通过URL传递cartId,或者如果您关注URL上的cartId可见性,那么您可以使用post方法作为以下代码。 使用以下cart.js文件并在loopback api中进行探索。
module.exports = function (Cart) {
Cart.getCart = function (cartId, cb) {
Cart.findOne({
where: { cartId : cartId }
}, function (err, cart) {
cb(null, users);
});
};
Cart.remoteMethod('getCart', {
accepts: {
arg: "id",
type: "string",
required: true
},
returns: {
arg: 'cart',
type: 'object'
},
http: {
path: '/:cartId/getcart',
verb: 'get'
}
});
};
get call : http://HOST:IP/cart/YourID/getcart
您将按ID检索购物车。 希望这会奏效。