2017-02-22 17 views
0

My SuiteScript Service MyService.Service.ss файл пытается использовать библиотеку Node.js Crypto, но при запуске службы я получаю сообщение об ошибке Error: No crypto.Не использовать Crypto в расширенном сервисе SuiteCommerce?

Имеет ли версия Node.js, что SCA не имеет установленной библиотеки Crypto? Нужно ли явно добавлять Crypto в зависимость от distro.json? Если да, то где? Нужно ли устанавливать Crypto? Если да, то любой совет, как - я новичок в Node.js.

Я использую довольно много стандартных функций Crypto см ниже код, который вызывает проблему:

function service (request) 
{ 
    'use strict'; 

    var crypto = require('crypto'); // Error here 

    var token = crypto.createHmac('md5', public_key) 
       .update(private_key) 
       .digest('hex'); 

    ... 
} 

ответ

1

Netsuite не использует двигатель V8, так что вы в значительной степени не повезло с крипто.

Я использовал Paul Johnston's md5 package для hmac calc в течение многих лет, и он достаточно быстр и хорошо взаимодействует. Название говорит о MD5, но также включает SHA-1,256,512.

+0

Спасибо :). Я провел некоторое исследование, и похоже, что серверная база SCA/NetSuite использует Rhino, а не Node.js. Это верно? Или, может быть, Rhino построен частично от Rhino? –

+0

Rhino был тем, что они использовали в прошлый раз, когда некоторые из их стековых следов просочились. Я предполагаю, что это все еще так, поскольку они работают на стек Java. Однако вы не можете получить ни одну из функций носорога. – bknights

+0

damn: P Я надеялся, что у Rhino есть криптографическая функция, которую я мог бы использовать. Вероятно, я собираюсь использовать пакет узлов js-sha256 и установить его как модуль 'third_parties' на моем сайте SCA (и включить его в' distro.json'). Надеюсь, я смогу так использовать эту свободу и использовать ее. –