如何将jmeter文件读入本地系统?

时间:2016-07-26 04:48:25

标签: node.js express elasticsearch jmeter base64

我使用node.js将文件索引到elasticsearch。我试图从jmeter输入文件?使用req.file我尝试读取文件,但它提供输出为undefined。任何人都可以指定更好的解决方案吗?

var http = require('http');
var express = require('express');
var app = express();
var CircularJSON = require('circular-json');
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
  host: '10.96.82.98:9200',
  log: 'trace'
});
http.createServer(app).listen(1000);

//indexing a document

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.post('/post/:index/:type/:id/', function(req, res){
var fs = require("fs");
fs.writeFile('inpu.file',req.file);
client.index({
index: req.params.index,
type: req.params.type,
 id: req.params.id,
 body:JSON.parse(fs.readFileSync(__dirname +'/inpu.file'))
},function (error, response) {
    console.log(response);
    res.send(response);
  });
}); 

我正在使用此代码

1 个答案:

答案 0 :(得分:0)

您的fs.writeFile()调用是异步的,因此执行client.index()时,可能尚未写入该文件。您有两种选择:

一个。请改用fs.writeFileSync()

fs.writeFileSync('inpu.file',req.file);

B中。添加回调到fs.writeFile()来电并仅在该回调中调用client.index()

fs.writeFile('inpu.file',req.file, function(err) {
   if (err) throw err;
   client.index({ ... });
});