7

Meteorクライアントコードでnpmモジュールを使用する方法について完全に混乱しています。

fsのようなモジュールはサーバー側でのみ機能することを理解していますが、この場合、きれいな日付を表示するためにこのような単純なテキストモジュールを使用したいと思います。

https://github.com/ecto/node-timeago

/ public / node_modulesの下にモジュールをインストールしようとしましたが、SOからの次の指示に従って、サーバー側でうまく機能します:( Meteorでnpmを介してノードモジュールを使用するにはどうすればよいですか?

Meteor.startup(function () {
  var require = __meteor_bootstrap__.require
  var timeago = require('timeago')
  console.log(timeago(new Date()))
  ...

ただし、クライアント側のコードでは機能しません。

if (Meteor.is_client) {
  var require = __meteor_bootstrap__.require
  var timeago = require('timeago')
  console.log(timeago(new Date()))
  ...

Uncaught ReferenceError: __meteor_bootstrap__ is not defined"

この場合、クライアントでテキストをレンダリングしようとしているので、サーバー側は役に立たないようです。

4

1 に答える 1

6

サーバーサイドバージョンを使用する必要はないと思います。npmのものはサーバー側にのみ使用し、ところで、/public/にも配置します。/ public /に入ったら、それを呼び出すことができるかもしれないことを誰が知っていますか、それを試してみてください。またはこれを試してください。

jquerytimeago.jsのようなものを使用してください

/client/または/client/jsのようなものに入れてください

/client/helpers.jsなどを作成します。

ハンドルバーヘルパーを使用します。

Handlebars.registerHelper('date', function(date) {
  if(date) {
    dateObj = new Date(date);
    return $.timeago(dateObj);
  }
  return 'a long long time ago in a galaxy far away';
});

テンプレートから「date」ハンドルバーヘルパー関数を呼び出す例。

{{ date created }}

dateはハンデバーヘルパーであり、作成されたのはmeteor/mongoコレクションからの日付です。

githubBrittoプロジェクトを参照してください。そこで、このコードスニペットを入手して、作成したチャットルームアプリで使用しました。正常に動作します。

そこに浮かんでいる他のカップルがあります。madewith.meteor.comにアクセスして、いくつかのプロジェクトのソースを熟読してください。

于 2012-05-08T21:58:25.600 に答える