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