我正在呼叫来自角4的请求。我用过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
服务器文件
app.use('/chat', chat);
可能是错误
答案 0 :(得分:0)
关于您不需要的客户端,将您的请求包含在承诺中,
更好的方法是使用toPromise()
中的rxjs
。
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);
});
});
答案 1 :(得分:0)
我从前端拨打 / getonlineusers ,在 / getonlineusers 之前有一条名为 /:room 的路线,我的ajax呼叫正在进行到 /:room 而不是 / getonlineusers
所以我在 /:room 上面设置 / getonlineusers 路线,那工作