javascript - 模块返回 promise express

标签 javascript node.js express

我有一个elasticsearch(可以是任何东西)js 文件,它执行一个简单的查询并使用 promise 返回数据。

我在我的express(server.js)中调用该模块,希望获得数据,因为最终我想将其发送到 Angular 或其他真正的......

我想知道为什么我没有将数据返回到 Express 服务器中?

get.js [我的elasticsearch js文件]

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
  host: 'localhost:9200',
});
var Q = require('q')

function GetElastic(qry) {
var deferred = Q.defer();
client.search({
        index: 'social',
        type: 'network',
        body: {
            query: {
                query_string:{
                   query:qry
                }
            }
        }
    }).then(function (resp) {       
        deferred.resolve(resp);
    }, function (err) {
        console.log(err.message);
        return deferred.resolve(err);
    });
    return  deferred.promise;
}

module.exports = GetElastic

server.js [我的 Express 服务器文件]

var express = require('express')
var bodyParser = require('body-parser')
var Get = require('./models/get')

var app = express()
app.use(bodyParser.json())

app.get('/api/posts',function(req, res){
  var qry = 'node'
  var get = new Get(qry)

  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end(JSON.stringify(get));
  console.log(get)
})

app.listen(3000, function(){
    console.log('Server listening on',3000)
})

最佳答案

改变

var get = new Get(qry)

  new Get(qry).then(function(data){
             get  = data;
  });

关于javascript - 模块返回 promise express ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32409082/

相关文章:

未定义 Javascript 参数

node.js - Istanbul 尔和 Mocha 的报道报告

javascript - 让 express.js 显示公用文件夹

javascript - 防止javascript访问不存在的数组

javascript - 如何在数组 Mongoose 模式中创建固定大小的数组

javascript - Bootstrap 日期时间选择器更改格式

javascript - 如何通过 AJAX 从 React 应用程序内的外部服务加载 React 组件

node.js - Express中如何访问 "?"之后的GET参数?

node.js - Express api res.jsonp 返回双回调

node.js - Sequelize JS 主键相关的包括