node.js通过请求模块发送
我需要发很多信息。我使用外部api和请求模块: email.jsnode.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:
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);
});
}