2017-12-01 13 views
0

私はrest.jsからnpm install restまでを使用しています。私のパラメータをリクエストのパスに追加することはできません。ここで私はテンプレートインターセプタがここhttps://github.com/cujojs/rest/blob/master/docs/interceptors.md#module-rest/interceptor/templateを示唆した使用私のclient.jsパスへのパラメータの追加rest.js

'use strict'; 

var rest = require('rest'); 
var defaultRequest = require('rest/interceptor/defaultRequest'); 
var mime = require('rest/interceptor/mime'); 
var uriTemplateInterceptor = require('rest/interceptor/template'); 
var errorCode = require('rest/interceptor/errorCode'); 
var baseRegistry = require('rest/mime/registry'); 

var registry = baseRegistry.child(); 

registry.register('text/uri-list', require('./api/uriListConverter')); 
registry.register('application/hal+json', require('rest/mime/type/application/hal')); 

module.exports = rest 
     .wrap(mime, { registry: registry }) 
     .wrap(uriTemplateInterceptor) 
     .wrap(errorCode) 
     .wrap(defaultRequest, { headers: { 'Accept': 'application/hal+json' }}); 

です。ここに私のコードは、要求を行っている。

client({method: 'GET', path: 'api/questions/page', params: {offset: 0, limit:10}}) 
     .then(response => console.log(response.request.path)); 

console.log(response.request.path)の出力は、API /質問/ページであり、それはまた、ネットワークログにリクエストパラメータを表示しません。パラメータをパスに追加するにはどうすればよいですか?

+0

がここhttps://stackoverflow.com/questions/6912584/how-to-get-get-query-string-variables-in-express-外観を持って作成されましたjs-on-node-js –

+0

私は別のライブラリを使用していると思います。上記のリンクでは、テンプレートインターセプタはパスにパラメタを自動的に追加する必要がありますが、動作しません – gary69

答えて

0

私はちょうど私の自身のインターセプタ

define(function(require) { 
    'use strict'; 

    var interceptor = require('rest/interceptor'); 

    return interceptor({ 
     request: function (request /*, config, meta */) { 
      /* If the URI is a URI Template per RFC 6570 (http://tools.ietf.org/html/rfc6570), trim out the template part */ 
      if (request.path.indexOf('{') === -1) { 
       if(request.params != null){ 
        request.path = request.path + '?' 
        Object.keys(request.params).forEach(function eachKey(key){ 
         request.path = request.path + key + '=' + request.params[key] + '&'; 
        }); 
        request.path = request.path.slice(0, -1); 
       } 
       return request; 
      } else { 
       request.path = request.path.split('{')[0]; 
       return request; 
      } 
     } 
    }); 

}); 
関連する問題