如何转换此JS代码以在Nodejs API中使用?

时间:2018-11-30 13:21:28

标签: javascript node.js

在某些情况下,我想使用我的api发送电子邮件,服务(infobip)文档在JS中显示了一个示例,但在我的nodejs和expressjs的api中不起作用。有人可以帮我吗?

/*----Sending fully featured email----*/

function createFormData(data) {
    var formData = new FormData();
    for (var key in data) {
        formData.append(key, data[key]);
    }
    return formData;
}

//Dummy File Object
var file = new File([""], "filename");

var data = {
    'from': 'Sender Name <from@example.com>',
    'to': 'recipient1@example.com',
    'subject': 'Test Subject',
    'html': '<h1>Html body</h1><p>Rich HTML message body.</p>',
    'text': 'Sample Email Body',
    'attachment': file,
    'intermediateReport': 'true',
    'notifyUrl': 'https://www.example.com/email/advanced'
};


var xhr = new XMLHttpRequest();
xhr.withCredentials = false;

xhr.addEventListener('readystatechange', function () {
    if (this.readyState === this.DONE) {
        console.log(this.responseText);
    }
});

xhr.open('POST', 'https://{base_url}.infobip.com/email/1/send', false);
xhr.setRequestHeader('authorization', 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==');
xhr.setRequestHeader('accept', 'application/json');

xhr.send(createFormData(data));

1 个答案:

答案 0 :(得分:0)

您应该使用来自nodejs的https。

这里是一个入门示例代码。对于infopib,这似乎是正常的Post请求。

我试图在此页面上创建一个帐户,但是注册似乎只能通过销售完成。所以我无法提供一个有效的例子...

这就是为什么我只能提供一个通用示例,说明如何进行https POST调用,这应该是开发解决方案的良好起点:

return products