我不确定我在这里做错了什么。我在这里关注这个例子:https://gist.github.com/mikermcneil/5737561。
我想将两个控制器动作链接到一个' get'路线。我需要返回一些json数据和一个视图。当尝试使用视图发送数据时,我收到一条socket.io错误消息,指出我无法通过视图发送信息。
'get /users': [
{
controller: 'UserController',
action: 'users'
},
{
controller: 'UserController',
action: 'getuser'
}
],
现在为了让它发挥作用,我必须要有两个'得到'路线。一个返回我的视图ejs文件,另一个返回套接字也可以连接。
var socket = io.connect('http://localhost:1337');
socket.get('/user', {}, function(users) {
var grid = new Slick.Grid("#userGrid", users.users, columns, options);
});
这可行,但后来我有一个随机/用户路线,任何人都可以访问,只返回json。我希望没有可以通过浏览器访问的随机路由。那么我可以将控制器动作链接到一条路线吗?或者有没有办法在一个动作中返回res.view和json数据?
users: function(req, res, next) {
//User.find().populateAll().exec(function(err, users){
res.view('user/users');
next();
// res.json({
// success: true,
// users: users
// });
//});
},
//get user data and send it as json to for sockets
getuser: function (req, res) {
User.find().populateAll().exec(function(err, users) {
res.json({users: users});
});
},
我尝试使用next()而没有。谢谢你的帮助!