"Тип 'строка | строка []' не может быть назначен типу" строка " - PullRequest
0 голосов
/ 07 февраля 2020

Я использую нод + машинопись и встроенный чван для вызовов API. У меня есть следующий запрос в swagger

http://localhost: 3033 / сотрудников / поиск /? Имя пользователя = тест

Здесь я хочу найти записи с именем пользователя = test.

Поэтому я анализирую строку запроса, используя модуль URL, как показано ниже, и получаю имя пользователя в своей консоли.

var params = URL.parse(req.url, true).query;
console.log(params); //gives me [Object: null prototype] { username: 'test' } in my console

Но всякий раз, когда я пытаюсь присвоить params.username константе, как показано ниже

const username:string =params.username;

Это выдает мне следующую ошибку

Type 'string | строка [] 'не может быть назначена типу' строка '. Тип 'string []' нельзя назначить типу 'string'.

Мой полный код указан ниже

import * as URL from 'url';

public getUserByName = async (req: Request, res: Response, next: NextFunction) => {
var params = URL.parse(req.url, true).query;
const username:string =params.username;

try {
  const findOneUserData: Employee = await this.userService.findUserByName(username);
  res.status(200).json({ data: findOneUserData, message: 'findOne' });
} catch (error) {
  next(error);
}

}

1 Ответ

0 голосов
/ 07 февраля 2020

Хорошо, я получил ошибку, которую сделал. Первым было то, что @ ford04 упомянул в комментарии. Я непосредственно назначил объект для строки. Я изменил это в своем вопросе. Вторая была преобразована проанализированная строка запроса в строку с помощью функции toString () .

public getUserByName = async (req: Request, res: Response, next: NextFunction) => {
var params = URL.parse(req.url, true).query;console.log(params.username);
const username:string =params.username.toString(); //this is the key

try {
  const findOneUserData: Employee = await this.userService.findUserByName(username);
  res.status(200).json({ data: findOneUserData, message: 'findOne' });
} catch (error) {
  next(error);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...