Adr*_*end 7 javascript pipe object stream node.js
我试图绕过Node.js流,而不是我对JavaScript和节点很新,我真正得到的最后一种语言是Perl和PHP :-D
我已经阅读了Buffer/Streams文档@ nodejs.org,观看了James Halliday @ LXJS,阅读了他的流手册和Thorsten Lorenz 事件流帖子.我开始了解基础知识:)
我处理在RDF中序列化的数据(既不是JSON也不是XML).我设法获取数据(通过请求在实际代码中)并使用rdfstore模块将其解析为JS对象.
到目前为止我这样做:
s.createReadStream('myRDFdata.ttl').pipe(serialize()).pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)
serialize()现在解析序列化代码的工作在哪里.我使用through模块来连接流.
现在我有更多的方法(不是真正的函数声明,但我希望你明白这一点):
getRecipe(parsedRDF) - >获取解析后的RDF(作为JavaScript对象)并告诉我如何使用它createMeal(parsedRDF, recipe) - >从上面获取解析的RDF和配方,并从中创建一个新的RDF对象getRecipe必须在浏览器中进行用户交互)我喜欢通过管道将它链接在一起的想法,以便在我稍后增强代码时获得更高的灵活性.但是我不希望每次都将它序列化为RDF序列化,而只是发送JS对象.从我在文档中读到的内容中,我可以使用该stringify模块从每个步骤中获取一个字符串,以便将其传递给下一步.但:
getRecipe必须首先调用依赖,输出也是输入createMeal.是否有模块可以帮助我?我希望这表明我正在尝试做什么,如果不是,我会尝试提供更多细节/改述.
更新:睡了之后我想出了更多的东西:
stringify我将简单地在步骤之间传递正式的RDF序列化,而不是使用我getRecipe,并createMeal通过简单地添加一些信息getRecipe到parseRDF,这可以很容易地与RDF做不破坏原始数据模型.但我仍然有兴趣知道我是否可以使用管道来处理这样的依赖关系是的,可以创建一个js对象流,你只需要记住管它通过在将它写入IO之前再次序列化流的东西.
我建议写一个名为rdfStream的模块来解析和序列化rdf,你会像这样使用它
var rdf = require('rdf-stream')
fs.createReadStream(file) //get a text stream
.pipe(rdf.parse()) //turn it into objects
.pipe(transform) //optional, do something with the objects
.pipe(rdf.stringify()) //turn back into text
.pipe(process.stdout) //write to IO.
Run Code Online (Sandbox Code Playgroud)
它也可以被其他在节点中使用rdf的人使用,太棒了!
| 归档时间: |
|
| 查看次数: |
7177 次 |
| 最近记录: |