【发布时间】: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