Estoy tratando de enviar un archivo yaml como una cadena base64 para que este código funcione:
const response = await octokit.request('GET /repos/{owner}/{repo}/git/blobs/{file_sha}', { owner: 'DevEx', repo: 'hpdev-content', file_sha: fileSha, headers: { authorization: `Bearer ${githubConfig?.token}`, }, }); const decoded = Buffer.from(response.data.content, 'base64').toString('utf8'); En el código anterior, response.data.content debería tener los datos.
tengo esta ruta:
router.get('/repos/:owner/:repo/git/blobs/:file_sha', (req, res) => { // TODO: do we need to do anything with the path params? // eslint-disable-next-line @typescript-eslint/no-unused-vars const { owner, repo, file_sha } = req.params; const contents = writeUsersReport(); const encoded = Buffer.from(contents, 'binary').toString('base64'); res.send(encoded); }); El código funciona bien, excepto que el código del cliente espera la cadena base64 en una propiedad llamada content en el siguiente código:
const decoded = Buffer.from(response.data.content, 'base64').toString('utf8'); Pero la cadena está en response.data . ¿Cómo puedo establecer la propiedad de content en su lugar?
¿Qué tal enviar una respuesta json que contenga un objeto con una propiedad de content desde el lado del servidor en lugar de la cadena codificada directamente?
// ... const encoded = Buffer.from(contents, 'binary').toString('base64'); res.json({content:encoded});