Tôi đã tìm kiếm trên stackoverflow / google cho điều này, nhưng dường như không thể tìm ra.
Tôi đang tìm kiếm các liên kết mạng xã hội của một trang URL nhất định và hàm trả về một đối tượng có danh sách các URL.
Khi tôi cố gắng ghi dữ liệu này vào một tệp khác, nó sẽ xuất ra tệp [object Object]
thay vì như mong đợi: [' https://twitter.com/#!/101Cookbooks ', ' http://www.facebook.com/ 101cookbooks '] như nó làm khi tôi console.log()
kết quả.
Đây là nỗ lực đáng buồn của tôi khi đọc và ghi một tệp trong Node, cố gắng đọc từng dòng (url) và nhập thông qua một lệnh gọi hàm request(line, gotHTML)
:
fs.readFileSync('./urls.txt').toString().split('\n').forEach(function (line){
console.log(line);
var obj = request(line, gotHTML);
console.log(obj);
fs.writeFileSync('./data.json', obj , 'utf-8');
});
để tham khảo - gotHTML
chức năng:
function gotHTML(err, resp, html){
var social_ids = [];
if(err){
return console.log(err);
} else if (resp.statusCode === 200){
var parsedHTML = $.load(html);
parsedHTML('a').map(function(i, link){
var href = $(link).attr('href');
for(var i=0; i<socialurls.length; i++){
if(socialurls[i].test(href) && social_ids.indexOf(href) < 0 ) {
social_ids.push(href);
};
};
})
};
return social_ids;
};
[object Object]
là một đối tượngtoString
. Nếu bạn muốn biểu diễn của đối tượng, hãy sử dụngJSON.stringify
.