0

我正在尝试使用 Node.js 在我的服务器端设置 Dropbox。我已经使用官方文档编写了非常基本的代码来执行此操作,并使用从 dropbox.com 生成的访问令牌(直到我得到这个工作)。我使用的代码如下所示,是http://dropbox.github.io/dropbox-sdk-js/index.html代码的变体。

'use strict';
var express = require('express');
var router = express.Router();
var Dropbox = require('dropbox');
router.post('/testDropbox', function(req, res) {
  console.log(req.body.dbxAccessToken);
  var dbx = new Dropbox({ accessToken: req.body.dbxAccessToken});
  console.log(dbx);
  dbx.filesListFolder({ path: ''})
    .then(function (response) {
      console.log(response);
      res.send(repsonse);
    })
    .catch(function (err) {
      console.log(err);
      res.send(err);
    })
  });

此捕获的错误显示为"Error: getaddrinfo EAI_AGAIN api.dropboxapi.com:443"

我对 Node.js 比较陌生,所以我希望它可能是我在设置中错过的一些简单的东西。此外,我在一个使用 NTLM 的代理后面,看到一个带有“443”的错误确实在我脑海中敲响了一些警钟。

4

2 回答 2

2
EAI_AGAIN
    The name server returned a temporary failure indication.  Try again later.

您的 dns 存在任何服务器端错误或问题。

@edit:api.dropboxapi.com 上存在 ssl 证书问题。您可以通过在代码顶部添加以下内容来禁用 ssl 检查use 'use strict';

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
于 2016-10-13T10:23:09.377 回答
0

您的代理可能正在阻止呼叫

如果您可以绕过代理,请尝试此操作以查看代理是否导致问题。不幸的是,许多公司不允许绕过代理,因此您可能需要与负责此类事情的人交谈以尝试提供帮助。

我使用的解决方法

我现在使用连接到外部路由器的 WiFi 加密狗绕过代理。如问题所示,我的代码按预期工作并且没有错误。

于 2017-02-07T11:29:30.473 回答