4

https プロトコル経由で vk.com API からデータを取得しようとしています。このように(api vk docs):

var https = require('https');

https.get('https://api.vk.com/method/users.get?access_token=' + global['access_token'], function (d) {
  var chunk = '';
  d.on('data', function (data) {
    chunk += data;
  });

  d.on('end', function () {
    console.log(chunk);
  });
}).on('error', function (e) {
  console.error(e);
});

しかし、herokuのログに表示されます

Error: Protocol:https: not supported.

では、どうすればこのデータを取得できますか? 私のアプリは http プロトコルで動作します。これは構成です。

var express = require('express'),
  routes = require('./routes');

var app = express();

    app.configure(function () {
      app.set('port', process.env.PORT || 3000);
      app.set('views', __dirname + '/views');
      app.set('view engine', 'jade');
      app.use(express.favicon());
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(app.router);
      app.use(express.static(path.join(__dirname, 'public')));
    });

    app.configure('development', function () {
      app.use(express.errorHandler());
    });

    app.get('/', routes.index);

    http.createServer(app).listen(app.get('port'), function () {
      console.log("Express server listening on port " + app.get('port'));
    });
4

1 に答える 1

0

Node v0.8.9 では、https.get() が URL を受け入れるようにする機能が追加されました。

特に特別な理由がない限り、package.json のエンジンの下に "node": "0.10.x" を使用してください。

また試してください:

`var options = { ホスト: 'api.vk.com', ポート: 443, パス: '/method/users.get?access_token=' + global['access_token'] };

https.get('options', function(....`

于 2014-12-17T22:08:02.870 に答える