使用 Mailjet 的 Nodejs 应用抛出一个令人困惑的错误
Nodejs app using Mailjet throwing a confusing error
我正在使用 Mailjet 构建一个应用程序,并使用他们的连接示例。
app.get('/send',function(req,res){
...
var request = mailjet
.post("send")
.request({
<request stuff, email details>
});
request
.on('success', function (response, body) {
<handle response>
})
.on('error', function (err, response) {
<handle error>
});
出现此错误:
Unhandled rejection Error: Unsuccessful
at /home/ubuntu/workspace/node_modules/node-mailjet/mailjet-client.js:203:23
当我转到 Mailjet 客户端并要求它记录错误时,它告诉我:
{ [Error: Unauthorized]
original: null,
...
有人知道我应该从哪里开始进行故障排除吗?
更新:在错误输出中看到了这个:
header:
{ server: 'nginx',
date: 'Thu, 02 Mar 2017 14:04:11 GMT',
'content-type': 'text/html',
'content-length': '20',
connection: 'close',
'www-authenticate': 'Basic realm="Provide an apiKey and secretKey"',
vary: 'Accept-Encoding',
'content-encoding': 'gzip' },
所以它没有吃掉我的 API 密钥和秘密。谁能告诉我如何在 Cloud9 中将它们设置为环境变量?
您可以在~/.profile
中设置环境变量。只读用户无法访问工作区目录 /home/ubuntu/workspace
之外的文件,因此人们将无法看到它们。
在终端中,你可以这样做:
$> echo "export MAILJET_PUBLIC=foo" >> ~/.profile
$> echo "export MAILJET_SECRET=bar" >> ~/.profile
然后,您将能够在使用 connect
方法时在 Node 中访问这些变量:
const mailjet = require ('node-mailjet')
.connect(process.env.MAILJET_PUBLIC, process.env.MAILJET_SECRET)
运行器(来自 "run" 按钮)和终端将评估 ~/.profile 并使环境变量可用于您的应用程序。
我正在使用 Mailjet 构建一个应用程序,并使用他们的连接示例。
app.get('/send',function(req,res){
...
var request = mailjet
.post("send")
.request({
<request stuff, email details>
});
request
.on('success', function (response, body) {
<handle response>
})
.on('error', function (err, response) {
<handle error>
});
出现此错误:
Unhandled rejection Error: Unsuccessful
at /home/ubuntu/workspace/node_modules/node-mailjet/mailjet-client.js:203:23
当我转到 Mailjet 客户端并要求它记录错误时,它告诉我:
{ [Error: Unauthorized]
original: null,
...
有人知道我应该从哪里开始进行故障排除吗?
更新:在错误输出中看到了这个:
header:
{ server: 'nginx',
date: 'Thu, 02 Mar 2017 14:04:11 GMT',
'content-type': 'text/html',
'content-length': '20',
connection: 'close',
'www-authenticate': 'Basic realm="Provide an apiKey and secretKey"',
vary: 'Accept-Encoding',
'content-encoding': 'gzip' },
所以它没有吃掉我的 API 密钥和秘密。谁能告诉我如何在 Cloud9 中将它们设置为环境变量?
您可以在~/.profile
中设置环境变量。只读用户无法访问工作区目录 /home/ubuntu/workspace
之外的文件,因此人们将无法看到它们。
在终端中,你可以这样做:
$> echo "export MAILJET_PUBLIC=foo" >> ~/.profile
$> echo "export MAILJET_SECRET=bar" >> ~/.profile
然后,您将能够在使用 connect
方法时在 Node 中访问这些变量:
const mailjet = require ('node-mailjet')
.connect(process.env.MAILJET_PUBLIC, process.env.MAILJET_SECRET)
运行器(来自 "run" 按钮)和终端将评估 ~/.profile 并使环境变量可用于您的应用程序。