2012-05-08 22 views
7

Jestem całkowicie zdezorientowany, jak używać modułu npm w kodzie klienta Meteor.Jak korzystać z modułu npm w kliencie Meteor?

Rozumiem moduły takie jak FS będzie działać tylko po stronie serwera, ale w tym przypadku chciałbym użyć prostego tekstu takiego modułu do wyświetlania ładny terminach:

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

Próbowałam instalacja modułu pod/public/node_modules, i działa świetnie na stronie serwera, wykonując te instrukcje z tak: ( How do we or can we use node modules via npm with Meteor?)

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

Howev er nie działa kod po stronie klienta:

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" 

po stronie serwera to rodzaj bezużyteczne dla mnie w tym przypadku, jak próbuję renderowania tekstu na kliencie.

+0

Metoda w http://stackoverflow.com/q/17068813/586086 działa dla mnie. –

Odpowiedz

6

Nie wierzę, że musisz użyć wersji po stronie serwera. Użyj rzeczy npm tylko po stronie serwera i btw, umieść to również w twoim/publicznym /. Kto wie, może możesz go nazwać, gdy jest w twoim/publicznym /, spróbuj. Lub spróbuj tego.

użyć coś jak jQuery timeago.js

Umieścić go w/client/lub coś podobnego/client/js

Stwórz /client/helpers.js czy coś takiego.

Użyj pomocnika kierownicy.

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'; 
}); 

Przykład wywołania funkcji pomocniczej "data" kierownicy z szablonu.

{{ date created }} 

Gdzie data jest pomocnikiem handebarów i jest datą wychodzącą z kolekcji meteor/mongo.

Zobacz projekt github Britto. To tam dostałem ten fragment kodu i użyłem go w aplikacji do czatu, którą napisałem. Działa w porządku.

Tam pływa kilka innych osób. Przejdź do madewith.meteor.com i sprawdź źródła niektórych projektów.

+0

Dzięki kolego! Tak więc podsumowanie problemu jest następujące: * Moduły npm nie są optymalne dla strony klienta * Pomocników na kierownicę to Twój przyjaciel * Wtyczki jQuery mogą być używane i odwoływane automatycznie, jeśli znajdują się w katalogu aplikacji – 7zark7

+0

Korekta "aplikacja/katalog klienta" - jak zobaczysz "ReferenceError: jQuery nie jest zdefiniowany" w przeciwnym razie. – 7zark7

+0

tak, to działa dla mnie, użyłem przykładu Britto z kodu JonathanKingstona ... jest jeszcze jeden projekt, który ma również dobrą czytelną datę ... przeszukaj projekty maddewith.meteor.com –

Powiązane problemy