Tag: feedparser

使用Mongoose和FeedParser在node.js中完成多个callback时跟踪

我正在编写一个批处理过程来读取RSS源,并通过Mongoose将内容存储在MongoDB中。 我会运行脚本,它会处理的内容就好了…但脚本不会返回到控制台。 我的假设是,我的数据库连接仍然是开放的,这就是为什么我没有返回。 我不能跟踪我的parsing完成时,因为我仍然可能有一些mongoose保存操作正在进行。 所以,我写了一个函数来跟踪我的开放数据库连接,以及我的RSSparsing的状态。 但是我的代码最终是非常冗长的。 我想知道是否有更好的模型/模式来做这样的事情。 var FeedParser = require('feedparser') , mongoose = require('mongoose'); var TEST_RSS_URL = "./test/data/20120303-seattle.rss"; var OPEN_DB_CONNECTIONS = 0; var PARSING_DONE = false; /* * Keeps track of open database connections, and closes the connection when done */ function track_and_close_database(mode) { switch(mode) { case 'open': OPEN_DB_CONNECTIONS++; break; case 'close': OPEN_DB_CONNECTIONS–; if […]

如何使用nodejs将可读stream转换为有效的JSON?

我正在尝试使用音乐会数据的ATOM提要,并将其输出到JSON以获得更好的消费。 到目前为止,我一直在使用请求来获取数据和feedparser来parsing它,它似乎正在工作,因为我想。 // data var feed = 'http://mix.chimpfeedr.com/630a0-dcshows'; var wstream = fs.createWriteStream('data.json'); var req = request(feed); var feedparser = new FeedParser({ addmeta: false }); req.on('response', function(res) { var stream = this; if (res.statusCode != 200) return this.emit('error', new Error('Bad status code')); stream.pipe(feedparser) }); feedparser.on('readable', function() { var stream = this; var item; // … do […]