2016-08-09 3 views
0

メテオのクライアントコードは、ユーザー署名用のキャンバスを表示し、後で取り込んでユーザーのコレクションに保存して署名する必要がある将来のhtmlレポートページに挿入するオプションです。htmlキャンバスからmongodbコレクションにデータを保存

これを達成するための一般的な概要とその方法は何ですか?

//client 
let imgData = ctx.getImageData(0, 0, width, height); 
Meteor.call('saveImageToUser', imgData); 

//server 
Meteor.methods({ 
    'saveImageToUser': (img) => { 
    Meteor.users.update(userId, { 
     signature: img 
    }) 
    } 
}); 
+0

Meteorメソッドは、クライアントとサーバーの両方のlibに置くことができます。最初にminimongoを実行し、後でサーバーのmongoを更新します。 – vijayst

答えて

1

私は自分のWebアプリケーションのいずれかで同じことをやりました。

私のhtml:

<canvas id="simple_sketch" width="400" height="400"></canvas> 

私のクライアントJS:

var canvas = $(#simple_sketch")[0].toDataURL(); 
Meteor.call('saveImageToUser', canvas); 

私の方法は、(ユーザーのprofileオブジェクトに保存しなければならないため、流星のユーザーオブジェクトに覚え

'saveImageToUser' : img => { 
    Meteor.users.update(userId, { 
     'profile.signature' : img 
    }) 
} 
+0

なぜそれをプロファイルに保存しなければならないのですか?前にプロファイルオブジェクトの外に物事を保存しました。 –

+0

@FredJ。ユーザーのプロファイルオブジェクト、ユーザー名、電子メール、および_idのみが自動的に公開されます。ユーザーオブジェクトの任意のキーに値を書き込むことはできますが、手動で値をクライアントに戻す必要があります。 – Nate

関連する問題