2016-11-14 10 views
0

Я пытаюсь передать json на метод nodejs post. Но я получаю ошибку «Требуется указать поисковый запрос». Я задал строку поиска и отфильтровал код. Можете ли вы посоветовать причину этой ошибки.Как передать метод отправления json to nodejs?

Одинаковый запрос, работающий в POSTMAN.

//Load the request module 
var express = require('express'); 
var request = require('request'); 
var app = express(); 

//Lets configure and request 
request({ 
    url: 'http://host:8080/rest/1.0/search', 
    qs: {query: 'nodejs*'}, 
    method: 'POST', 
    json: { 
     filter: 
     { 
      community: ['33862a97-44e5-4de5-9206-db0a61dd83ca'], 
      vocabulary: ['b80f3576-0642-4049-bb07-d72a0dd9e3e0','48029bb8-0585-4ed5-afaa-55014aebfcb3'], 
      type: {asset:['00000000-0000-0000-0000-000000011001']}, 
     }, 
     fields: ['name'] 

    } 
}, function(error, response, body){ 
    if(error) { 
     console.log(error); 
    } else { 
     console.log(response.statusCode, body); 
} 
}); 
app.listen(8080); 
+0

'request()' отправляет данные в '/rest/1.0/search? Query = nodejs% 2A'. Является ли это ожидаемым путем или должен быть передан запрос в поле 'json'? Это не связано с вашей проблемой, но нет необходимости устанавливать «заголовки», добавив поле 'json', которое автоматически добавит заголовок' 'Content-type: application/json'' для вас. –

+0

запрос должен быть передан в поле json. Позвольте мне приложить короткий пост почтальона здесь. – user2848031

ответ

1

По вашему postman скриншоте вы можете попробовать следующий код, избавившись от qs: {query: 'nodejs*'} и добавив же внутри json.

//Load the request module 
var express = require('express'); 
var request = require('request'); 
var app = express(); 

//Lets configure and request 
request({ 
    url: 'http://host:8080/rest/1.0/search', 
    method: 'POST', 
    json: { 
     query: 'nodejs*', 
     filter: 
     { 
      community: ['33862a97-44e5-4de5-9206-db0a61dd83ca'], 
      vocabulary: ['b80f3576-0642-4049-bb07-d72a0dd9e3e0','48029bb8-0585-4ed5-afaa-55014aebfcb3'], 
      type: {asset:['00000000-0000-0000-0000-000000011001']}, 
     }, 
     fields: ['name'] 

    } 
}, function(error, response, body){ 
    if(error) { 
     console.log(error); 
    } else { 
     console.log(response.statusCode, body); 
} 
}); 
app.listen(8080);