【发布时间】:2016-09-09 03:22:49
【问题描述】:
我已经进行了一些 vimeo api 调用来获取视频,但是当我在服务器上执行获取请求时,它会使用该路径上的 html 而不是来自服务器的数据进行响应。我也在使用 angular-client-side-auth (https://github.com/fnakstad/angular-client-side-auth)。我是新手,所以我很难理解为什么会发生这种情况。
server.js
app.get('/api/mostviewed', function (req, res) {
MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) {
res.json(docs);
});
});
在客户端身份验证的 routes.js 里面有这个,这导致了这一切(这个文件在服务器端):
{
path: '/*',
httpMethod: 'GET',
middleware: [function(req, res) {
var role = userRoles.public, username = '';
if(req.user) {
role = req.user.role;
username = req.user.username;
}
res.cookie('user', JSON.stringify({
'username': username,
'role': role
}));
res.render('index');
}]
}
我该如何解决这个问题?我想保持路径:'/*',或者在保持功能相似的同时改变它,这样我就可以从服务器获取我的数据。还是有其他方法可以解决这个问题?
编辑: 解决方案
{
path: '/api/mostviewed',
httpMethod: 'GET',
middleware: [Video.getmostviewed]
},
在 Video.js 中我做了这个:
getmostviewed: function(req,res){
MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) {
res.json(docs);
});
}
【问题讨论】:
-
可以给
res.render('index');添加条件 -
能否详细说明这一点,最好举个例子?
标签: javascript angularjs json node.js