Stuck之間我的應用程序調用模塊解析嵌套的JSON對象,以讀取2鍵的值。JST嵌套對象和回調在Nodejs
parseData(str, function (error, str) {
if (err) {
console.log("Error - parseData : ", err);
} else {
console.log(str);
}
而且parseData模塊如下
function parseData(str, callback) {
function recursiveFunction(obj) {
var keysArray = Object.keys(obj);
for (var i = 0; i < keysArray.length; i++) {
var key = keysArray[i];
var value = obj[key];
if (value === Object(value)) {
parseData(value);
} else {
if (key == 'title') {
title = value;
}
if (key == 'extract') {
var extract = value.replace(/(\r\n|\n|\r)/gm," ");
callback(null, JSON.stringify('{"title":'+ title + ', "text":' + extract));
}
}
}
}
recursiveFunction(str);
}
但它顯示了以下錯誤
/modules/parseData.js:22
callback(null, JSON.stringify('{"title":'+ title + ', "text":' + extract));
^
TypeError: callback is not a function
爲什麼回調失敗?如何返回JSON對象?
編輯
有代碼中的一些錯誤,現在修正。
function parseData(str, callback) {
function recursiveFunction(obj) {
var keysArray = Object.keys(obj);
for (var i = 0; i < keysArray.length; i++) {
var key = keysArray[i];
var value = obj[key];
if (value === Object(value)) {
recursiveFunction(value);
} else {
if (key == 'title') {
title = value;
}
if (key == 'extract') {
var extract = value.replace(/(\r\n|\n|\r)/gm," ");
callback(null, JSON.stringify('{"title":'+ title + ', "text":' + extract));
}
}
}
}
recursiveFunction(str);
};
您的第一個代碼塊缺少'}'和')';是一個錯誤的帖子或你的程序是否有語法錯誤? – Jacob
當您遞歸調用函數時,將'callback'加入參數 –
'callback(null,JSON.stringify('{「title」:'+ title +',「text」:'+ extract));'看起來非常錯誤。如果你想創建適當的JSON,你應該傳遞一個對象到'JSON.stringify':'callback(null,JSON.stringify({title:title,text:extract}));'。但是你確定你想要JSON而不是一個對象嗎? –