Получение конкретной записи с использованием пользовательского ввода в форме с MongoDB, NodeJS и Angular5 - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь получить запись из моей базы данных MongoDB, используя пользовательский ввод на угловом шаблоне. Вот что в моем файле api.js:

// Response handling
let response = {
status: 200,
key: [],
message: null
};

router.get('/keys/:key', (req, res, next) => {
connection((db) =>  {    
db.collection('keys')
  .findOne({key: req.params.key})
  .then((keys) => {
      response.key = keys;
      res.json(keys);
    })
  .catch(err => {
      return next({ status: 500, message: 'messed up'})
    });
  });
});

Вот мой файл keys.service.ts:

@Injectable()
export class KeysService {

 result: any

 constructor(private _http: Http) {}

 getKeys(typeKey) {

   return this._http.get(`/api/keys/:key${typeKey}`)
     .map(result => this.result = result.json().key);

}

}

Вот шаблон (извиняюсь за форматирование):

<div class="container">
  <div style="text-align:center">
  <h1>
    Welcome to {{ title }}!
 </h1>   
</div>
<div class="row">
<div class="col-xs-12 col-sm-10 col-md-8 col-sm-offset-1 col-md-offset-2">
  <input type="text" [(ngModel)]="typeKey">
  <button class="btn btn-primary" (click)="getKeyClass(typeKey)">Check Your 
Key Spelling</button>
  <br><br>
  <h2>The Correct Key Spelling is: {{ keySpelling }}</h2>
  </div>
 </div>
</div>

То, что я сейчас получаю как ошибку, это «ошибка типа, не могу прочитать ключ свойства null». Это относится к «ключу» в файле keys.service.ts в последней строке.

Я не использую мангуста или монаха здесь. У меня это работало с общим запросом моей базы данных, который давал мне все содержимое «ключей» коллекции, но когда я пытаюсь сделать отдельный запрос, кубики не выпадают. У кого-нибудь есть идеи, что я делаю не так?

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