2017-02-15 31 views
2

я отладка функции лямбды локально на узле 4.3, используя стандартный Amazon Machine Image (Linux x64)TypeError Base64 не является функция при использовании Buffer.from в узле 4,3

Когда я запускаю программу, я получаю ошибка в функции, предназначенной для декодирования строки base64 в utf-8. Ошибка:

Unhandled rejection TypeError: base64 is not a function 
    at Function.from (native) 
    at Function.from (native) 
    at /home/ec2-user/sass-compiler/lib/compiler.module.js:26:30 

Мой код кажется довольно простым. Я проверил вокруг SO и node 4.3 docs, и мой код кажется совместимым. Любые идеи, что я могу делать неправильно?

template() { 
     return new Promise((resolve, reject) => { 
      let buf = Buffer.from(this._opts.tpl, 'base64').toString('utf-8'); 
      let _tpl = _.template(buf); 
      resolve(_tpl(this._opts.opts)); 
     }); 
    } 

EDIT Программа прекрасно работает на Windows 10 с помощью узла LTS 6.9.5

ответ

5

я, наконец, нашел ответ на переполнение стека, который отвечает на этот вопрос.

NodeJS: How to decode base64 encoded string back to binary?

В узле 5,3 & ниже, вы должны использовать конструктор буфера (то есть: new Buffer) вместо Buffer.from