es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El tipo ‘string[]’ no se puede asignar al tipo ‘string’ en Nestjs.

Estoy intentando descargar un archivo llamando a una API externa en NestJS.
A continuación se muestra mi código en el servicio:

import { Injectable } from '@nestjs/common';
import * as fs from "fs";
import * as axios from "axios";

@Injectable()
export class FileService {
  saveFile() {
    return axios.default
      .get("https://www.nseindia.com/")
      .then((res) => {
        return axios.default.get(
          "https://www.nseindia.com/api/option-chain-indices?symbol=BANKNIFTY",
          {
            headers: {
              cookie: res.headers['set-cookie'],
            },
          }
        );
      })
      .then((res) => {
        //console.log(res.data);
        let data = JSON.stringify(res.data);
        fs.writeFileSync("../files/option-chain-indices.json", data);
        return data;
      })
      .catch((err) => {
        console.log(err);
      });
  }
}

Estoy obteniendo el siguiente error:

error TS2322: Type 'string[]' is not assignable to type 'string'.

cookie: res.headers['set-cookie']

¿Cómo puedo resolver este problema?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la propiedad res.headers['set-cookie'] es un array de strings, pero el encabezado cookie espera un solo valor de tipo string. Para resolver este problema, puedes unir el array de strings de cookies en un solo string utilizando el método join, de la siguiente manera:

    headers: {
      cookie: res.headers['set-cookie'].join('; '),
    },
    

    Esto concatenará todos los strings de cookies con un punto y coma seguido de un espacio como separador, que es el formato estándar para combinar múltiples cookies en un solo valor de encabezado.

Comments are closed.