meteor 0.5.7 を使用して (Parties の例に従って)、client、server フォルダーを作成し、それぞれの client.js および server.js ファイルをそれらに配置しました。自動公開、安全でない削除、および電子メール パッケージの追加を行いました。Meteor.call を起動できません。デバッグすると、バイパスされることが示されます。これを大まかにフォローしています - http://goo.gl/MV26m - それでも理解できません。
// server.js
Meteor.startup(function () {
process.env.MAIL_URL = '...'; // using mailgun URL
});
Meteor.methods({
call_me: function (options) {
var options = options || {};
Email.send({
from: options.from,
to: options.to,
replyTo: options.from || undefined,
subject: options.subj,
text: options.msg,
});
},
});
// client.js
Template.form.events({
'click .submit' : function (event, template) {
var from = template.find("#from").value;
var to = template.find("#to").value;
var subj = template.find("#subj").value;
var msg = template.find("#msg").value;
var options = { from: from, to: to, subj: subj, msg:msg };
Meteor.call('call_me', options, function(err, data) {
if (err)
console.log(err);
});
}
});
// client.html - the gist of it
<body>
{{> page }}
</body>
<template name="page">
{{> form }}
</template>
<template name="form">
<form ....
</template>
最後に、私は実際に Meteor.methods({...}); を持っていました。クライアント/サーバーフォルダーの外のmodel.jsファイルに座っています-それでもメールを送信したり、Meteor.callメソッドを呼び出したりしませんでした。前述の添付リンクのスタブの概念に頭を悩ませようとしていて、呼び出しを関数内にラップして呼び出しましたが、まだアクティビティがありませんでした。アドバイスをありがとう。