使用nodejs和express

时间:2019-06-07 09:38:36

标签: node.js mongodb express real-time angular7

我想根据用户在搜索栏中输入的城市来搜索用户发布的所有出版物,以此为基础,Angular7前端将从mongodb数据库中显示与该特定地点相关的所有出版物的结果基于创建该发布的用户,即使我能够将节点api的结果控制台到浏览器控制台,我也将在前端获取数据。我唯一想做的就是正确点击搜索API,它将显示与该特定地点相关的所有出版物

请帮助我如何以正确的角度击中该api以便从浏览器控制台中的数据库中获取结果,或者根据正在搜索的查询字符串在angular 7中实现实时搜索的正确方法是什么?搜索栏。

publication_controller.js(服务器端)

function searchPublication(req, res, next){
    var q = req.query.q;
    Publication.find({
        $location : {
            $regex : new RegExp(q)
        }
    },{
        _id:0,
        _v:0
    }, function(err,data){
        if(err)
            return res.status(500).send({message : "No result found"});
        return res.status(200).send({data});
    }).limit(10);
} 

router.js(服务器端)

api.get('/publication-search/:user/:page?', md_auth.ensureAuth, PublicationController.searchPublication);

角度-publication.service.ts(前端)


  searchPublicationUser(token, page=1): Observable<any> {
    let headers = new HttpHeaders().set('Content-Type', 'application/json')
                                   .set('Authorization', this.token);

    return this._http.get(this.url + 'publication/' + '/', {headers: headers});
} 

app.component.html(前端)

<form class="form-inline">
 <div class="form-group">
   <input class="form-control" type="text" #city placeholder="Search" (keyup)="details(city.value)"/>
  </div>
</form>

app.component.ts(前端)

details(id) {
         this._publicationService.searchPublicationUser(this.token).subscribe(
             response => {
                 this.refresh();
             },
             error => {
                 console.log(<any>error);
             }
         );
     }

0 个答案:

没有答案