我想下载一个文件,将其写入临时文件,读取它并将readFileSync Buffer提供给一个函数.我试过这个:
var file = fs.createWriteStream("temp.pdf")
var request = http.get(linkArray[1], function(response) {
response.on('data', function(data){
file.write(data)
}).on('end', function(){
postData(fs.readFileSync('temp.pdf'))
})
});
Run Code Online (Sandbox Code Playgroud)
有时它可以工作,但有时却不行 - 我的猜测是文件在读取时没有完全写入.(但是'结束'事件不应该被解雇?!正如你所看到的,我想下载一堆文件并执行此操作.你有任何建议如何解决这个问题吗?也许这不是最好的解决这个问题的方法......
我有一个弹性搜索服务器,我想查询,但在向用户显示结果之前,我想过滤结果(在数据库中查找用户的权限等)
所以我想我写了一个代理服务器,它收到JSON POST搜索请求并将其重定向到Elasticsearch Server.现在将结果的响应发送到"过滤器服务器".此服务器在数据库中查找收到的json数据,并删除不允许用户查看的结果.此过滤的内容应呈现给用户.
好的 - 这就是我所做的:
var proxy = http.createServer(function (req, res){
if(req.method == 'OPTIONS'){
res.writeHead(200, {'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json; charset=UTF-8'});
res.end();
}
if(req.method == 'POST'){
var searchOptions = {
host: '10.0.10.1',
port: 9200,
method: 'POST',
path: '/ltg_5096/_search'
}
var searchRequest = http.request(searchOptions, function(searchResponse){
// this is the Request to the Elasticsearch Server...
var filterOptions = {
host: '127.0.0.1',
port: 8080,
method: 'POST',
path: '/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}
var filterRequest = http.request(filterOptions, function(filterResponse){
// ?! This …Run Code Online (Sandbox Code Playgroud)