首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sails js中调用REST API

在Sails js中调用REST API
EN

Stack Overflow用户
提问于 2016-06-22 12:08:30
回答 2查看 3.6K关注 0票数 4

我正在使用Sails js。我不知道如何调用REST api并获取响应数据。

我的控制器:

代码语言:javascript
复制
var request = require('request');
var http = require('http');
var https = require('https');

module.exports = {
    main: function(req, res){
        var rs = "Someone";
        var options = {
            hostname: 'thomas-bayer.com',
            port: 80,
            path: '/sqlrest',
            method: 'GET'
        };

        http.request(options, function(response) {      
            sails.log.debug('log:'+response);
            rs = response;
        });

        res.send("Hello "+ rs);
    }
};

我无法获取响应数据,sails.log.debug()在控制台上没有显示任何内容。

它只在浏览器上显示"Helo某人“。

EN

回答 2

Stack Overflow用户

发布于 2017-06-19 14:27:28

你可能想看看新的请求-承诺api,它非常容易使用,并且在错误处理和性能方面提供了更好的控制。https://github.com/request/request-promise

代码语言:javascript
复制
Install 
npm install --save request
npm install --save request-promise

Usage 
    var rp = require('request-promise');
    var options = {
      uri: 'https://api.github.com/user/repos',
      qs: {
        access_token: 'xxxxx xxxxx' // -> uri + '?access_token=xxxxx%20xxxxx'
      },
      headers: {
        'User-Agent': 'Request-Promise'
      },
      json: true // Automatically parses the JSON string in the response
    };

    rp(options)
      .then(function(repos) {
        console.log('User has %d repos', repos.length);
      })
      .catch(function(err) {
        // API call failed...
      });
票数 3
EN

Stack Overflow用户

发布于 2016-06-22 14:21:55

http.request是异步的。

只需将您的res.send放在回调中,如下所示:

代码语言:javascript
复制
var request = require('request');
var http = require('http');
var https = require('https');

module.exports = {
    main: function(req, res){
        var rs = "Someone";
        var options = {
            hostname: 'thomas-bayer.com',
            port: 80,
            path: '/sqlrest',
            method: 'GET'
        };

        http.request(options, function(response) {      
            sails.log.debug('log:'+response);
            rs = response;

            res.send(rs);
        });


    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37958383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档