Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js通过请求模块发送_Node.js_Node Modules - Fatal编程技术网

node.js通过请求模块发送

node.js通过请求模块发送,node.js,node-modules,Node.js,Node Modules,我需要发很多信息。我使用外部api和请求模块: email.js var request = require('request'); module.exports = function(subject, email){ var message = ... ; var options = { method: 'POST', url: 'https://api.emails.net.com/api/sendmail', form:

我需要发很多信息。我使用外部api和请求模块:

email.js

var request = require('request');

module.exports = function(subject, email){
    var message = ... ;
    var options = { 
        method: 'POST',
        url: 'https://api.emails.net.com/api/sendmail',
        form: {
            smtp_account: smtp,
            to: {},
            subject: subject,
            html: message,
            from: 'myapp@email.com',
            from_name: 'Myapp'
        },
        headers: {
            'Authorization': ' ... '
        }
    };

    request(options, function (error, response) {
        if (!error && response.statusCode === 200) return true;
        return false;
    });
};
在另一个地方:

var sendEmail = require('../email');

...

for( ... ){
    if(sendEmail(subject, email)){
        //do something
    }
}

成功后我想做点什么,但不要求回报。是否有任何方法可以检查帖子是否成功,并在我需要电子邮件模块的地方做一些事情?我正在循环发送电子邮件,我必须逐一检查。

您可以这样做

var request = require('request');
var Promise = require('bluebird');

var email = function () {
    return {
        send: function (subject, email) {
            var message = "test";
            var options = {
                method: 'POST',
                url: 'https://api.emails.net.com/api/sendmail',
                form: {
                    smtp_account: "smtp",
                    to: {},
                    subject: subject,
                    html: message,
                    from: 'myapp@email.com',
                    from_name: 'Myapp'
                },
                headers: {
                    'Authorization': ""
                }
            };
            return new Promise(function (resolve, reject) {
                request(options, function (error, response) {

                    if (!error && response.statusCode === 200) {
                        resolve(true);
                    } else {
                        reject(err);
                    }
                });
            })
        }
    }
};

module.exports = email();
然后你可以按如下方式使用它

for (var i = 0; i < 10; i++) {
            console.log(i);
    email
        .send("test", "test@gmail.com")
        .then(function (status) {
            ///Do what ever u want to do
        })
        .catch(function (err) {
            console.log(err);
        });

}
for(变量i=0;i<10;i++){
控制台日志(i);
电子邮件
.send(“测试”test@gmail.com")
.然后(功能(状态){
///做你想做的事
})
.catch(函数(err){
控制台日志(err);
});
}