当你从文件中读取多行并使用nodejs sendFile发送响应时,如何创建对象
How to create object when you read multiples lines from files and send response using nodejs sendFile?
我正在从一个服务器记录消息到文件,现在对于客户端,他们需要下载文件,所以在下面的代码中,我正在发送文件内容下载,当它的单个消息文件被下载,但是当它的多个消息在文件中抛出异常在客户端意外令牌,因为json是无效的,我添加了如何文件数据看起来像我的问题。我如何发送这些消息作为json对象[{},{}]
当我sendFile内容到客户端?
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"}
你应该把逗号和根用大括号括起来。
请看下面的例子:
{"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"
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- 响应动画手风琴不工作
- 如何从SeleniumWebdriver获取异步Javascript响应
- Ajax调用在Firefox中不会自动响应
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- IIS动态HTTP响应标头
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Ajax响应转换
- 使Intro.js工具提示响应
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 将高图饼图中的文本居中显示为响应
- Css转换没有响应
- Typescript angularjs$http获取响应类型(避免使用<any>)