Изменить параметр запроса: экспресс-запрос JS get - PullRequest
0 голосов
/ 29 апреля 2019

Я отправляю запрос от углового компонента на сервер Express.Все работает нормально (я получаю ожидаемые результаты, и они отображаются правильно).

В тот момент, когда я пытаюсь изменить параметр QUERY, ничего не отображается.В качестве примера, скажем, пользователь ищет слово «руки».Я хочу, чтобы слово было выделено в единственном числе.

это реализация на стороне сервера:

app.get('/api/words', function(req, res) {
  var name = req.query.name;
  var option = req.query.option;  

  // english word:
  if(option == 1){
    // This is where I check if the word is plural to turn it into singular form
    if(name[name.length - 1]== 's'){
      name = name.slice(0, name.length - 1);
    }

    fs.readFile('words.xml', 'utf-8', function (err, data){
      if(err){

      } else{
        parser.parseString(data, function (err, result) {
        let words = result['entry']['form'];
        str= words.filter(x => x.orth == name);
  }

      res.send(str);

Угловой компонент, вызывающий службу http:

 getWordList(name: string){
    this.spelling = name.toString().toLowerCase();
    this.webservice.getWords(this.spelling, this.selected)
    .subscribe((res: Array<Word>)=> {
      this.elements = res.filter(d=> d.orth == this.spelling || d.asuddimIsem == this.spelling);

      this.dataLoaded.emit(this.elements);
      this.webservice.setData(this.elements);
      this.router.navigate(['/words']);
    })
  }

Данные представляют собой XML-файл со списком английских слов.Запрос ищет единственную форму слова.Поэтому, если это слово во множественном числе, токенизация должна получить правильный элемент.

Когда я отправляю запрос, например, «руками», консоль показывает код состояния 200 с правильным ответом.Пока ничего не отображается.

1 Ответ

0 голосов
/ 29 апреля 2019

В angular вы фильтруете результат, используя this.spelling, и, насколько я понимаю, this.spelling содержит искомое слово (которое hands), а d.orth содержит форму единственного числа.

С этого момента фильтрация удалит каждый элемент на стороне клиента.

Как решить эту проблему правильно, зависит от вашего варианта использования. Например. единственное число для фильтрации на стороне клиента или удаления фильтрации на стороне клиента, потому что вы уже делаете это на стороне сервера.

...