[英]NODE.js unable to use restful data obtained by restler
我正在將restler與NODE.JS一起使用,以從實時供稿中獲取數據。 如果我只想在屏幕上顯示整個提要,它的效果就很好,但是我想實際抓取提要並將其過濾掉,只發出需要的內容。
這是我的API可以正常工作的代碼段
app.get('/cis/public/:crs', function (req, res) {
fullpath = 'http://(domain)/timetables/search_crs.php?crs='+req.params.crs;
rest.get(fullpath).on('complete', function(result) {
if (result instanceof Error) {
console.log('Error:', result.message);
this.retry(1000); // try again after 1 sec
} else {
res.send(result);
}
});
});
這將在屏幕上顯示完整的供稿,盡管其格式沒有我期望的那樣。
這是我想做的事的一個例子,如果我正在處理本地JSON文件,這可以很好地工作。
var結果= JSON.parse(fs.readFileSync('./ data / ppm.json','utf8'));
但是,當以以下格式使用restful時,我會失敗
app.get('/cis/public/:crs', function (req, res) {
fullpath = 'http://(domain)/timetables/search_crs.php?crs='+req.params.crs;
rest.get(fullpath).on('complete', function(result) {
if (result instanceof Error) {
console.log('Error:', result.message);
this.retry(1000); // try again after 1 sec
} else {
var National = result.GetStationBoardResult.locationName;
res.send(National);
}
});
});
引發的錯誤是
var National = result.GetStationBoardResult.locationName;
^
TypeError: Cannot read property 'locationName' of undefined
如何使用從節點中的Restler獲得的數據,而不僅僅是在屏幕上顯示。
這是返回的JSON的示例(頂部)
{
"GetStationBoardResult": {
"generatedAt": "2015-03-18T10:49:36.9120348+00:00",
"locationName": "Swindon",
"crs": "SWI",
"platformAvailable": true,
"trainServices": {
謝謝
編輯:這是現在可以給我有用和可用的JSON的最后一段代碼。
app.get('/cis/public/:crs/:total', function (req, res) {
fullpath = 'http://(domain)/timetables/search_crs.php?crs='+req.params.crs+'&total='+req.params.total;
rest.get(fullpath).on('complete', function(result) {
if (result instanceof Error) {
console.log('Error:', result.message);
this.retry(1000); // try again after 1 sec
} else {
var Results = JSON.parse(result);
res.send(Results);
}
});
});
現在,我可以對結果進行其他操作。 並將JSON分解為更多可用(和過濾后的)信息
當您console.log會發生什么
result
根據錯誤,您的對象結果沒有名為的屬性
GetStationBoardResult
編輯:由於結果是字符串而不是對象,將使用以下方法解決:
var National = JSON.parse(result).GetStationBoardResult.locationName;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.