我正在尝试使用ng-file-upoad上传csv文件。这是我的代码片段:
Upload.upload({
url: baseUrl + '/file-upload',
data: {
file: file
}
})
.then(function(res) {
console.log('success: ===> ', res);
}, function(err) {
console.log('erroir: ===> ', err);
}, function() {
console.log('progress: ', arguments);
});
在节点环境中,我正在解析文件并将数据插入数据库中。我不想关闭连接。这就是我使用“response.write”的原因。这是我的代码片段:
var path = req.files.file.path,
currentIndex = 0;
fs.readFile(path, 'utf8', function(err, data) {
if(err) {
// handle error
} else {
// making array (dataArray) from data
dataArray.forEach(function(eachData){
newEntry = new app.db.models.SomeCollection(eachData);
newEntry.save(function(err, data) {
if (currentIndex === dataArray.length) {
res.end('DONE!');
} else {
currentIndex++;
res.write(JSON.stringify({
total: dataArray.length,
done: currentIndex
}));
}
});
})
}
});
我的问题是如何获取我在“res.write”中传递的数据?我不想仅为此目的使用套接字。我错过了什么吗?
答案 0 :(得分:1)
正如已经解释过here:
response.send(msg)等于response.write(msg); response.end();
这意味着,send只能调用一次,write可以多次调用,但你必须自己调用end。
由于<?php
$data = array('name'=>'title',
'class'=>'form-control',
'id'=>'title',
'placeholder'=>'Blog Title',
'value'=>set_value('title', $this_blog->blog_title));
echo form_input($data);
?>
缺失,您可能没有收到回复。
一旦你response.end()
你的回复,你应该能够在返回的Upload.upload承诺中访问角度控制器中的响应数据。
如你所说,它不像关闭连接。这不是 socket-ish 之类的实现(例如end()
或ws
)。一旦发出请求,即使要提供有关该请求的错误详细信息(即状态401,403,404等),它也应该有响应。