2015-04-26 14 views
5

Próbuję skonfigurować podstawowy formularz kontaktowy za pomocą SengGrid i wciąż otrzymuję błąd "Uncaught ReferenceError: require is not defined".Rozwiązać "Uncaught ReferenceError: require is not defined" błąd w Node.js

Mam ten kod w znaczniku skryptu w nagłówku strony html.

var sendgrid = require('sendgrid')(username,pass); 

Spojrzałem na requirejs, ale nie jestem pewien, dlaczego otrzymuję ten błąd. Czy ktoś mógłby mi wytłumaczyć, w jaki sposób mogę rozwiązać ten problem?

+1

Czy naprawdę używasz pliku node.js? Ten kod powinien zostać dodany do kodu serwera JavaScript, a nie do strony HTML. –

+1

Node.js nie ma w przeglądarce. Jeśli chcesz używać requirejs w przeglądarce, musisz użyć znacznika skryptu, aby go załadować. –

Odpowiedz

9

require() nie jest wbudowany w przeglądarce.

Kiedy mówisz, że "Mam ten kod w tagu skryptu w nagłówku strony html." to wyjaśniałoby, dlaczego symbol require nie jest zdefiniowany podczas działania skryptu. Jeśli chcesz użyć przeglądarki require() w przeglądarce, musisz najpierw użyć znacznika script w celu załadowania biblioteki, która definiuje funkcję require i obsługuje funkcję typu require() i upewnij się, że została pomyślnie załadowana przed próbą użycia require(). requirejs to jedna z takich bibliotek, z której można skorzystać.

require() jest wbudowany w plik node.js na serwerze, dzięki czemu jest zawsze dostępny.

+2

Co muszę zrobić, aby mieć require() w angularjs? – cfl

+1

@ cfl - przeczytaj ponownie środkowy akapit mojej odpowiedzi. Mówię ci, co możesz użyć, jeśli chcesz 'require()' podobne funkcje w przeglądarce. Oto artykuł na ten temat: http://www.sitepoint.com/using-requirejs-angularjs-applications/ – jfriend00

4

Zasadniczo musisz przekształcić swój kod źródłowy do przeglądarki, zastępując wymagane połączenia rzeczywistym kodem modułu. Spójrz na tych narzędzi: