2016-07-06 3 views
3

Я пытаюсь использовать node-geocoder, который использует require поэтому установить browserify по sudo npm install -g browserify, и я думаю, что я застрял на пакетирования всего browserify <some_file>.js -o src/assets/bundle.js. Я не уверен, какой файл я должен выбрать, так что я решил, что если бы я хочу использовать node-geocoder (create.controller.js) Наконец я добавил <script src="bundle.js"></script> к моему index.html Но я все еще получаю ReferenceErrorReferenceError: требуют не определен - browserify - генератор углового

angular.js:13550 ReferenceError: require is not defined 
    at new CreateController 

create.controller.js

(function() { 
    'use strict'; 

    angular 
    .module('untitled') 
    .controller('CreateController', CreateController); 

    /** @ngInject */ 
    function CreateController($http, $log) { 

    var NodeGeocoder = require('node-geocoder'); 

    var options = { 
     provider: 'google', 
     httpAdapter: 'https', // Default 
     apiKey: 'myApiKey', 
     formatter: 'string' 
    }; 

    var geocoder = NodeGeocoder(options); 


    geocoder.geocode('29 champs elysée paris') 
     .then(function(res) { 
     console.log(res); 
     }) 
     .catch(function(err) { 
     console.log(err); 
     }); 

Я использую generator-angular Я очень новичок в JS и всех этих фреймворках, поэтому я надеюсь, что я разместил всю необходимую информацию.

+1

поэтому точка входа для browserify должен быть первый файл, который начинает требовать зависимостей. im не уверен, как настроен остальная часть вашего проекта, но я не думаю, что вы сможете использовать браузер на одном контроллере и включать его через тег скрипта и ожидать, что он будет работать с остальной частью вашего приложения, которое не использует браузеру , Также глядя на модуль node-geocoder, он ничего не говорит об этом, работая на стороне клиента, поэтому, даже если вы его заработаете, этот модуль может зависеть от вещей, доступных только в узле. –

+0

Это очень важная информация, что некоторые плагины не будут работать на стороне клиента. Я думаю, что я просто буду искать другой плагин или просто использовать простой геокодер google. Сейчас я думаю, что мне не хватает опыта для этого. –

ответ

0

Require() Не действительная функция в клиентском JavaScript. Попробуйте использовать RequireJS (http://requirejs.org/docs/download.html)

За помощью API RequireJS», http://requirejs.org/docs/api.html

+0

'require()' будет работать на стороне клиента при использовании браузера, например, он делает –

Смежные вопросы