【发布时间】:2018-03-23 17:08:32
【问题描述】:
我正在尝试从服务器端存在的流星方法在客户端返回响应或错误。该方法本身用于在提交表单时向 API 提交发布请求,我希望在客户端能够返回 API 的响应,以便我可以向用户发送信息,例如,该电子邮件地址已经存在。这是我目前所拥有的。
当我成功调用该方法时,我在 console.log(result); 的客户端收到 201 响应,但我还想在 POST 提交给出 400 或任何错误时通过控制台记录错误。
server/main.js
Meteor.methods({
addSub(email) {
var emailAddress = {
"lists": [
{
"id": "1395617465"
}
],
"email_addresses": [
{
"email_address": email
}
]
}
HTTP.post('https://api.constantcontact.com/v2/contacts?api_key=<api-key>', {
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
data: emailAddress
}, function (error, response) {
if ( error ) {
console.log( error );
throwError = error;
} else {
console.log(response);
returnResponse = response;
}
});
return returnResponse;
}
});
client/main.js
Template.info.events({
'submit #cm-subscribe'(event){
event.preventDefault();
var form = event.target;
var email = form.email.value;
Meteor.call('addSub', email, (error, result) => {
console.log(result);
});
}
});
client/main.html
<template name="info">
<h2>Signup For Our Newsletter</h2>
<form id="cm-subscribe">
<input field name="email" type="email" value="email">
<input type="submit">
</form>
</template>
【问题讨论】:
标签: javascript meteor methods error-handling return