2015-01-12 1 views
0

Я новичок в узле и пытаюсь узнать, как изменить приложение Keystone.JS, чтобы он мог вызывать данные из API (JSON или XML) и отображать его в который визуализируется.Вызов внешнего API с помощью приложения Node (KeystoneJS)

Текущий код в моем приложении - это, по сути, клонированная версия этого демонстрационного приложения https://github.com/JedWatson/keystone-demo, за исключением того, что движок просмотра - это ручные панели в моем приложении. До сих пор я пытался установить пакет запросов и сыграть с кодом из документации в файле keystone.js без везения.

Затем я создал файл model/api.js, маршруты/api.js, маршруты/представления/api.js и шаблоны/представления/api.hbs и снова воспроизвел с примерами кода в документации запроса, но не смог понять, что я делаю, и как все эти новые страницы даже работали в моем приложении.

Я был бы очень признателен за то, как вызывать API и отображать запрошенную информацию в одном из приложений, отображаемых в виде представлений. Заранее спасибо!

ответ

0

Вы могли поразить апи от вашей модели логики, как так https://github.com/r3dm/shpe-sfba/blob/master/models/Event.js#L69 Вы можете использовать узел, построенные в HTTP библиотеке http://devdocs.io/node/http

// Below we call the Facebook api to fill in data for our model 
Event.schema.pre('save', function(next) { 
    var myEvent = this; 

    var apiCall = 'your API string'; 

    https.get(apiCall, function(res) { 
     var body = ''; 
     res.on('data', function(d) { body += d; }); 
     res.on('end', function() { 
     body = JSON.parse(body); 

     if (body.error) { 
      var err = new Error('There was an error saving your changes. Make sure the Facebook Event is set to "Public" and try again'); 
      next(err); 
     } else { 
      next(); 
     }); 
    }) 
    .on('error', function(e) { 
     console.log(e); 
    }); 
}); 

Если вы хотите, чтобы данные быть извлечены в другом сценарии попробуйте добавить запрос НТТРА initLocals в routes/middleware.js.

+0

Спасибо, Гарри, я попробую сегодня вечером. –

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