nodeJS: can't get crypto module to give me the right AES cipher outcome

I'm trying to use the nodeJS crypto module to encrypt some hex strings using the ECB mode of AES 128.

To do so, I'm using the following code:

cryptoAES = function (sInput, sKey, bEncrypt) {
    return crypto('AES-128-ECB', sInput, sKey, bEncrypt);
};

crypto = function (sAlgo, sInput, sKey, bEncrypt) {
    var result = "";
    if (bEncrypt){
        var cipher;
        var bKey = new Buffer(sKey, 'hex');
        var bInput = new Buffer(sInput, 'hex');

        cipher = crypto.createCipher(sAlgo, bKey);

        cipher.setAutoPadding(false);
        result = cipher.update(bInput, null, 'hex');
        result += cipher.final('hex');
    }
    return result;
};

When calling cryptoAES with:

sKey = '12345678900987654321123456789001'

sInput = '060123456789ABCDEF00000000000000'

I should get

result = 'FBECD5D02C5B7CD1055AAF86238D1E2F'

but I'm getting:

result = 'ea1f940da8e269b9e075c936bff6a1f7'

Any idea what I could be doing wrong?

Reading https://github.com/joyent/node/issues/1318#issuecomment-1562766, you do need crypto.createCipheriv():

cipher = crypto.createCipheriv(sAlgo, bKey, '');

That generates the required result.