到目前为止,我有以下代码,我需要从JSON对象获取id:
var http = require("http");
var fs = require('fs');
//var bodyParser = require("body-parser");
//var moment = require("moment");
var options = {
"method" : "GET",
"hostname" : "xxx.xxx.xxx.xxx",
"port" : "18080",
"path" : "/api/v1/applications/"
};
var req = http.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = JSON.parse(Buffer.concat(chunks));
var arrFound = Object.keys(body).filter(function(key) {
if (body[key].name.indexOf("TestName") > -1) {
return body[key].name;
}
}).reduce(function(obj, key){
obj = body[key].id;
return obj;
}, {});;
//console.log("Name: ", arrFound);
console.log("ID: ", arrFound);
});
});
req.end();
我知道它正在读取id,因为我现在把它写到控制台(console.log(“ID:”,arrFound);)。
我想要做的是将其用于我程序的其他部分。我假设我需要做一些事情,比如将它封装在我可以调用的函数中,但node.js对我来说是新的,我不完全确定如何/做什么。
有人可以建议如何做到这一点或指向一些可能有帮助的资源吗?
答案 0 :(得分:1)
您应该研究模块模式和导出。你是对的,基本的想法是将你的代码导出为一个函数。根据您的处理方式,它应该采用回调函数。我已经用你所拥有的东西做了一个天真的尝试。
注意我将null作为第一个参数传递给回调函数。在节点中使用回调时使用第一个参数进行错误是常规的。您可能需要一些错误处理。
话虽如此,你晚上会看一些像请求或ES6获取功能这样的库。这些将允许您更整洁地组织代码。你可能会使用promises而不是回调。
exports.getId(function(err, id){
console.log(id)
})
你这样称呼它:
{{1}}