节点js和eBay API实现

我是一个节点的JS初学者,我需要帮助将控制台日志数据导出到HTML页面。

我在GitHub上find了这个好例子: https : //github.com/benbuckman/nodejs-ebay-api

我的问题是这样的:我设法实现它与我的需求 – 但我不设法从控制台日志中提取数据! 我只是想在浏览器中显示它,而不是在控制台日志中。

有什么build议么 ?

目前正在处理“单个”示例 – 这是我的代码到目前为止,它有很多错误:

// example simple request to FindingService:findItemsByKeywords var ebay = require('../index.js'); var http = require('http'); var express = require('express'); var app = express(); var io = require('socket.io'); app.set('port', process.env.PORT || 5000); app.get('/get', function(req, res) { console.log('inside get'); // for avoiding crossbrowser-error res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); res.header('Content-Type','application/json'); var params = {}; params.keywords = [ "cat"]; params['paginationInput.entriesPerPage'] = 10; ebay.ebayApiGetRequest({ serviceName: 'FindingService', opType: 'findItemsByKeywords', appId: 'MYAPPID', // FILL IN YOUR OWN APP KEY, GET ONE HERE: https://publisher.ebaypartnernetwork.com/PublisherToolsAPI params: params, // filters: filters, parser: ebay.parseItemsFromResponse // (default) }, // gets all the items together in a merged array function itemsCallback(error, items) { if (error) throw error; console.log('Found', items.length, 'items'); for (var i = 0; i < items.length; i++) { console.log('- ' + items[i].title); } } ); }); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); console.log('Listening on port 5000...'); 

看起来您正在使用Express,并在URL /get上指定一个GET API端点。 据我所知,你想看到从浏览器的输出,而不只是控制台(你可以看到console.log消息的console.log )。 Express会返回给你发出HTTP请求的用户,你放在res.send() 。 例如,如果您要添加:

 res.send("hello"); 

到`app.get'函数的结尾,您会在浏览器中看到“hello”。 请注意,您只能这样做一次,因此您需要将想要发送给浏览器的所有信息绑定到一个对象中,然后发送该信息。

它看起来像你想看到的是从itemsCallback函数内收集的数据。 所以为了简单起见,您可以将items回。 例如:

 function itemsCallback(error, items) { if (error) throw error; console.log('Found', items.length, 'items'); for (var i = 0; i < items.length; i++) { console.log('- ' + items[i].title); } res.send(items); // sends the items in the HTTP response } 

作为一个方面说明,你不需要包含http模块,而是可以像这样启动服务器:

 app.listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port')); });