【问题标题】:express router not calling get request returning with empty obj快速路由器不调用 get 请求返回空 obj
【发布时间】:2018-04-05 01:29:15
【问题描述】:

我正在从 angular 4 调用 get 请求。我用过 expressjs 路由器。我的接听电话没有进入我的路由器功能。如果我使用虚拟 id 它工作正常。 这是我的前端代码

getOnlineUser(){
console.log('nline --')
return new Promise((resolve, reject) => {
  this.http.get(this.url+'/chat/getonlineusers')
    .map(res => res.json())
    .subscribe(res => {
      resolve(res);
    }, (err) => {
      reject(err);
    });
}); }

这是我的 expressjs 路由器代码

router.get('/getonlineusers', function(req, res, next) {
 console.log('here it is---+=============---------- ')
 // the above console not working
 OnlineUsers.find({}, function (err, Users) {
  console.log(Users)
if (err) return next(err);
res.json(Users);
});
});

如果我使用像 /getonlineusers/:id 这样的虚拟 ID,这个路由器可以正常工作

服务器文件是

app.use('/chat', chat);

可能是什么错误

【问题讨论】:

  • 当您查看浏览器开发工具的网络部分时,正在执行的请求的 URL 是什么?
  • 我在这里使用的相同 /getonlineusers 并且它在响应中显示空 obj
  • 您能否在此处发布完整的 URL,以便我们为您检查?您的服务器上是否配置了任何其他可能与此请求匹配的路由,可能是早期实验遗留下来的东西或您忘记更新的复制/粘贴?
  • 尝试将其更改为/getonlineusers/:id(正如您在问题中提到的那样),然后添加日志记录以检查id 的值:console.log(req.params.id)。可能会对正在发生的事情有所了解。
  • 这安慰了我发给@skirtle的id

标签: node.js express get routes


【解决方案1】:

我从前端调用 /getonlineusers,在 /getonlineusers 之前有一条名为 /:room 的路由,我的 ajax 调用正在进行到 /:room 而不是 /getonlineusers

所以我把路线 /getonlineusers/:room 放在上面,这工作

【讨论】:

    【解决方案2】:

    关于您不需要的客户端,将您的请求包装在一个承诺中, 更好的方法是使用来自rxjstoPromise()

    import 'rxjs/add/operator/toPromise';
    
    getOnlineUser() {
       return this.http.get(`{this.url}/chat/getonlineusers`)
         .map(res => res.json())
         .toPromise();
     }
    
    // back seems ok
    router.get('/getonlineusers', function (req, res, next) {
      OnlineUsers.find({}, function (err, users) {
        if (err) return next(err);
    
        res.json(users);
      });
    });
    

    【讨论】:

    • 这不是问题
    • 同意,这更像是一个建议而不是回答
    • 我的接听电话不来快递路由器
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多