Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用MongoDB、NodeJS和Angular5表单中的用户输入获取特定记录_Node.js_Mongodb_Typescript_Angular5 - Fatal编程技术网

Node.js 使用MongoDB、NodeJS和Angular5表单中的用户输入获取特定记录

Node.js 使用MongoDB、NodeJS和Angular5表单中的用户输入获取特定记录,node.js,mongodb,typescript,angular5,Node.js,Mongodb,Typescript,Angular5,我试图使用用户输入的角度模板从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: re

我试图使用用户输入的角度模板从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);
}

}

以下是模板(对于格式设置,我深表歉意):


欢迎来到{{title}}!
检查你的
关键拼写


正确的密钥拼写是:{{keySpelling}}
我现在收到的错误是“类型错误,无法读取null的属性键”。它指的是最后一行的keys.service.ts文件中的“key”


我不是在用猫鼬或和尚。我对数据库进行了一般性查询,该查询提供了集合“键”的全部内容,但当我尝试进行单独查询时,没有骰子。有人知道我做错了什么吗?

。然后((keys)=>{response.key=keys;res.json(keys);})这里的响应可能没有定义
keys
是API返回的实际响应。尝试删除
response.key=keys
很有可能
keys
会有一个
data
属性,这可能就是您要查找的。尝试添加一个
console.log(keys)
来查看具体返回的内容。它是node.js部分中的res.json。您的返回对象没有键“key”,因为您的服务正在解析json,并且使用的“key”
response
没有在任何地方定义,因此它被视为
null
@NeilLunn——response实际上是定义的,我忘了添加它。我修好了,我帮不上什么忙了。但一定要进一步研究如何连接到该数据库和集合。有些东西看起来不对劲。
<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>