gapi auth2 init с ошибкой & ldquo; Неиспользуемый ReferenceError: auth2 не определен & rdquo; [Дубликат]

С момента написания, октябрь 2014 года - так вот современное решение. Я пишу это решение как модуль узла, и включил тест с использованием Mocha и Chai, а также underscoreJS. Вы можете легко проигнорировать их и просто взять код Enum, если это предпочтительнее.

Видеть много сообщений с чрезмерно запутанными библиотеками и т. Д. Решение получить поддержку перечисления в Javascript настолько просто, что это действительно не нужно , Вот код:

Файл: enums.js

_ = require('underscore');

var _Enum = function () {

   var keys = _.map(arguments, function (value) {
      return value;
   });
   var self = {
      keys: keys
   };
   for (var i = 0; i < arguments.length; i++) {
      self[keys[i]] = i;
   }
   return self;
};

var fileFormatEnum = Object.freeze(_Enum('CSV', 'TSV'));
var encodingEnum = Object.freeze(_Enum('UTF8', 'SHIFT_JIS'));

exports.fileFormatEnum = fileFormatEnum;
exports.encodingEnum = encodingEnum;

И тест для иллюстрации того, что он вам дает:

file: enumsSpec.js

var chai = require("chai"),
    assert = chai.assert,
    expect = chai.expect,
    should = chai.should(),
    enums = require('./enums'),
    _ = require('underscore');


describe('enums', function () {

    describe('fileFormatEnum', function () {
        it('should return expected fileFormat enum declarations', function () {
            var fileFormatEnum = enums.fileFormatEnum;
            should.exist(fileFormatEnum);
            assert('{"keys":["CSV","TSV"],"CSV":0,"TSV":1}' === JSON.stringify(fileFormatEnum), 'Unexpected format');
            assert('["CSV","TSV"]' === JSON.stringify(fileFormatEnum.keys), 'Unexpected keys format');
        });
    });

    describe('encodingEnum', function () {
        it('should return expected encoding enum declarations', function () {
            var encodingEnum = enums.encodingEnum;
            should.exist(encodingEnum);
            assert('{"keys":["UTF8","SHIFT_JIS"],"UTF8":0,"SHIFT_JIS":1}' === JSON.stringify(encodingEnum), 'Unexpected format');
            assert('["UTF8","SHIFT_JIS"]' === JSON.stringify(encodingEnum.keys), 'Unexpected keys format');
        });
    });

});

Как вы можете видеть, вы получаете фабрику Enum, вы можете получить все ключи просто, вызвав enum.keys, и вы можете сопоставить сами ключи с целыми константами. И вы можете повторно использовать завод с разными значениями и экспортировать созданные сгенерированные суммы с использованием модульного подхода Node.

Еще раз, если вы просто случайный пользователь или в браузере и т. д., просто возьмите заводскую часть кода, потенциально удалив также библиотеку подчеркивания, если вы не хотите использовать ее в своем коде .

12
задан cpow 10 December 2012 в 05:33
поделиться

1 ответ

Сообщает вам, что значение присваивается переменной, называемой csrf_token, которая не была объявлена, например.

csrf_token = 'foo';

В нестрогом режиме это создаст свойство глобального объекта (обычно называемого глобальной переменной), называемого csrf_token, когда выполняется эта строка кода.

В строгом режиме он выдает ошибку, которую вы видите, потому что строгий режим предотвращает неявное создание глобальных переменных. Вы также можете исправить это, включив в него:

var csrf_token;

в любом месте глобального контекста в том же элементе сценария, что и код ошибки, или предыдущий элемент сценария.

22
ответ дан RobG 31 August 2018 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: