ohb*_*sme 1 javascript node.js express elasticsearch
我正在尝试构建一个 Express.js 应用程序,用于查询在不同服务器上运行的 elasticsearch。我创建了一个快速脚手架应用程序,我唯一改变的是在routes/index.js. 我将其更改为如下所示:
var express = require('express');
var router = express.Router();
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
host: 'http://SERVERDNS.com:9200/'
});
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
router.get('/search', function(req, res) {
var wut = client.search({
index:"test-papers-es",
type:"test-papers-es",
body: {query:
{"match": req.query}
}
});
console.log(wut);
res.send(wut);
console.log(wut);
console.log(req.query);
});
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
问题是,当我发送这样的查询时:
http://SERVERDNS.com:3000/search?title=gene
Run Code Online (Sandbox Code Playgroud)
我没有得到回应(我期待 JSON)。在console.log我的client.search( var wut)的代码是这样的:
{ _bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined,
_settledValue: undefined,
_boundTo: undefined,
abort: [Function: abortRequest] }
Run Code Online (Sandbox Code Playgroud)
我的req.query样子是这样的:{ title: 'gene' }
知道我做错了什么吗?
.search不同步。你不能只是调用它并期待下一行的答案。API 使用承诺,如下所述:http : //www.elasticsearch.org/guide/en/elasticsearch/client/javascript-api/current/quick-start.html#_say_hello_to_elasticsearch
举个例子:
client.search({
q: 'pants'
}).then(function (body) {
var hits = body.hits.hits;
}, function (error) {
console.trace(error.message);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1701 次 |
| 最近记录: |