2017-04-13 1 views
0

私は、エクスプレスセッションでループバックを使用して、cartIdを保存しています。ループバックモックセッション

しかし、テストセッションを行うには、リクエストセッションでcartIdを注入する必要があります。

だから私のリモートメソッドの上に、私は私のテストのためにreq.session.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' } 
    } 
); 

がありますか?私が正しくあなたのケースを理解していれば、あなたは以下のコードに似た何かを行うことができ、あなたは自分のgetメソッドの定義に別のparam(CARDID)を追加します

おかげ

答えて

0

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' } 
    }); 
0

することはでき単純に "get"リモートメソッドを使用し、URLを介してcartIdを渡すか、URLのcartied表示について懸念がある場合は、postメソッドを次のコードとして使用できます。 次のcart.jsファイルを使用して、ループバック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でカートを取得します。 これがうまくいくと思います。