L'erreur qui s'affiche sur la console est:

TypeError: Cannot read property '0' of null
    at app.post (/root/src/master.js:24:29)

Master.js 24:29 est-ce

let outputs = req.body.outputs
  let outs = []
  for (let out of outputs) {
   outs.push({
     address: out.addresses[0],
      value: out.value
    })}
  }

La ligne 24 est l'adresse: out.addresses[0],

Demande de ce json

"outputs": [
{
"value": 10000,
"script": "a91402f42dce015def2fab0b1d6f7f6c742bae66e75e87",
"addresses": [
"31xdnmzVzmAQ5CaWxtiDr3jwCFfeUpHEb1"
],
"script_type": "pay-to-script-hash"
},
{
"value": 1020,
"script": "0014396ef6487043092385338ccfe9d327fb031975d6",
"addresses": null,
"script_type": "pay-to-witness-pubkey-hash"
}
]

Quelqu'un peut-il m'aider à résoudre ce problème? Merci beaucoup!

-1
Gaben Lounge 11 avril 2018 à 12:27

3 réponses

Meilleure réponse

Adresses en null. Vous pouvez ajouter un chèque nul

let outputs = req.body.outputs
let outs = []
for (let out of outputs) {
    outs.push({
      address: out.addresses ? out.addresses[0] : '',
      value: out.value
    })}
}
1
rozalex 11 avril 2018 à 09:31

Étant donné que votre addresses peut être nul (selon les exemples de sorties que vous avez partagés),

for (let out of outputs) {
   outs.push({
     address: out.addresses ? out.addresses[0] : [], //notice the change here
      value: out.value
    })}
}

Définissez un tableau vide si le out.addresses est null.

0
gurvinder372 11 avril 2018 à 09:32

address est nul à un endroit de l'objet,

Vous pouvez donc ajouter une condition pour vérifier si address est present en utilisant un opérateur terniary.

let outputs = req.body.outputs
  let outs = []
  for (let out of outputs) {
   outs.push({
     address: out.addresses ? out.addresses[0] : '',
      value: out.value
    })}
  }

address: out.addresses ? out.addresses[0] : '',

The above line checks if out.addresses` est présent et si oui, il retournera que sinon retournera une chaîne vide.

0
Sravan 11 avril 2018 à 09:32