我正在尝试使用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);
})
});
此捕获的错误显示“错误:getaddrinfo EAI_AGAIN api.dropboxapi.com:443”。
我是Node.js的新手,所以我希望它可能在设置中遗漏了一些简单的东西。 此外,我在一个使用NTLM的代理服务器后面,看到一个错误“443”,它确实在我脑子里响起了一些警钟。
答案 0 :(得分:0)
EAI_AGAIN
The name server returned a temporary failure indication. Try again later.
您的dns有任何服务器端错误或问题。
<强> @edit:
api.dropboxapi.com上存在ssl证书问题。您可以在use 'use strict';
之后添加代码顶部来禁用ssl检查:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
答案 1 :(得分:0)
您的代理可能阻止了来电
如果您可以绕过代理,请尝试此操作以查看代理是否导致问题。 不幸的是,许多公司不允许人们绕过代理,因此您可能需要与负责此类事情的人员交谈以寻求帮助。
我使用的解决方法
我现在使用连接到外部路由器的WiFi加密狗来绕过代理。我的代码,如问题所示,按预期工作,没有错误。