我正在从其中一个服务器将消息记录到文件中,现在对于客户端,他们需要下载文件,所以在下面的代码中我发送文件内容以便在下载单个消息文件时下载但是当它的多个消息时在文件中它在客户端意外令牌上抛出异常因为json无效,我在我的qestion中添加了filesdata的样子。当我向客户端发送文件内容时,如何将这些消息作为json对象[{},{}]
发送?
app.js
app.get('/file', function (req, res) {
var dir = './ditLogs';
var root = path.resolve('./ditLogs');
var fileName = req.query.file_name;
var data;
fs.readdir(dir, function(err, items) {
items.forEach(function(file){
if(fileName === file){
data = file;
console.log('DATA',data);
res.setHeader('Content-Disposition', 'application/json','attachment; filename=' + data);
res.setHeader('Content-type', 'text/plain');
res.sendFile(data, {root: root});
}
});
});
});
fileData
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
答案 0 :(得分:0)
你应该用逗号括起逗号和root。
见这个例子:
{"logs" : [{"level":"info","message":"Test Log messages"},
{"level":"info","message":"Test Log messages"},
{"level":"info","message":"Test Log messages"}
]}
//To resolve your issue. Declare a variable say
var container ="{"logs" : ["; //start tag
// append the content
container += "" + {'level':'info','message':'Test Log1 messages'} + "";
container += "" + {'level':'info','message':'Test Log2 messages'} + "";
container += "]}"; // end tag
//然后你可以使用字符串“container”