2016-06-01 2 views
3

Я должен написать свое сообщение, сказав, что я новичок, и это мой первый раз, используя Node.js и Express в реальном проекте.Как получить объект JSON из URL-адреса в Node.js/Express

У меня есть простой проект Node.js/Express, и я хочу прочитать объект JSON из URL-адреса. Впоследствии я намерен создать еще один URL-адрес, который отображает html с внешнего веб-сайта с использованием iframe.

я прочитал о модуле «запроса» в Интернете и знаю, что мне нужно сделать что-то вдоль этих линий:

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 

// Urls for App Center REST functions 
var url = 'https://someserver.com/appserver/portal/api/1.0/results/recent'; 

/* GET list of recent reports */ 
router.get('/testapi', function(req, res, next) { 
    res.render('testapi', { title: 'List Recent Reports' }); 
}); 

/* TEST: function to GET report list */ 
router.get('/recentreports', function(req, res){ 
    request({ 
    url: url, 
    json: true 
    }, function (error, response, body) { 
     if (!error && response.statusCode === 200) { 
     console.log(body) // Print the json response 
    } 
    }) 
}); 

Я попытался определить функцию /recentreports, которая называется в testapi.jade зрения, однако ничего печатается в консоли при загрузке страницы, и я подозреваю, что делаю что-то ужасно неправильно.

Мои вопросы: (? Index.js, app.js, testview.jade и т.д ...)

  1. Как читать JSON в мое приложение и где делает этот код идти

  2. Как экспортировать URL-адрес, который я создаю, из любого места, где этот код живет в моем представлении .jade?

+0

Что значит «Прочтите JSON в мое приложение» и «Как экспортировать URL-адрес, который я построил, откуда»? – peteb

ответ

1

В консоли браузера не было ничего, поскольку на сервер не было отправлено никакого ответа. Ответ был зарегистрирован только на консоли сервера.

Вам необходимо будет реорганизовать код для маршрута 'recentreports' для отправки данных. Вы можете использовать простой res.send вызов:

... 
function (error, response, body) { 
    if (!error && response.statusCode === 200) { 
    res.send(body) // Send the response to the client 
    } 
} 
... 

Этот ответ будет получен testapi.jade через вызов AJAX к '/recentreports' маршруту. Вызов AJAX может быть определен в файле Javascript, полученном в файле testapi.jade.

Созданный URL не нужно экспортировать, поскольку он существует в том же файле testapi.jade (после того, как вы сформировали его из результатов вызова AJAX).

+1

Думаю, что я вижу сейчас, поэтому у меня уже был бы JSON в приложении на стороне клиента и мог бы обрабатывать мою бизнес-логику. Имеет смысл. Мне придется поиграть с AJAX - еще новичок в этом. Любые рекомендуемые ссылки для такого рода вещей в node/express? – Sledge

Смежные вопросы