1
誰でもこの関数の結果としてこのxmlを返す方法について私を助けることができますか?NodeJS PromiseからXMLを返すには?
この関数を呼び出すときはいつでも変数xmlAssinadoが返される必要があります。
module.exports = { AssinarXML: function(xml, arquivo, data){
certificado.GerarPEM()
.then(function(pem){
if (pem !== 500){
const transforms = [
'http://www.w3.org/2000/09/xmldsig#enveloped-signature',
'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'
];
const infoProvider = (pem) => {
return {
getKeyInfo() {
const cert = this.getCert();
return `<X509Data><X509Certificate>${cert}</X509Certificate></X509Data>`;
},
getCert() {
const certLines = pem.certificate.split('\n');
return certLines.filter((e, i) => i && e && e.indexOf('-----') !== 0).join('');
}
};
};
var signer = new SignedXml();
signer.addReference(`//*[local-name(.)=\'infNFe\']`, transforms);
signer.signingKey = new Buffer(pem.key);
signer.canonicalizationAlgorithm = 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315';
signer.keyInfoProvider = infoProvider(pem);
signer.computeSignature(xml);
**var xmlAssinado = signer.getSignedXml();**
fs.writeFile(arquivo + '.xml', xmlAssinado, function(err) {
if(err) {
console.error("Ocorreu um erro na gravação do arquivo: %s", err);
}
else {
console.log("XML Gerado e Assinado Com Sucesso!");
}
});
} else {
console.error("Ocorreu na assinatura do arquivo");
}
})}}
これを達成するにはどうすればよいですか?