使用Express.io进行路由转发
我尝试使用Express.io转发路由,但没有成功,我在Github上阅读了文档,我完全按照他们说的做了。我不知道问题出在哪里使用Express.io进行路由转发,express,socket.io,Express,Socket.io,我尝试使用Express.io转发路由,但没有成功,我在Github上阅读了文档,我完全按照他们说的做了。我不知道问题出在哪里 app.post('/signin', function(req, res) { me.pseudo = req.body.pseudo; me.email = req.body.email; me.gravatar = "http://www.gravatar.com/avatar/" + md5(me.email) + "?s=140";
app.post('/signin', function(req, res) {
me.pseudo = req.body.pseudo;
me.email = req.body.email;
me.gravatar = "http://www.gravatar.com/avatar/" + md5(me.email) + "?s=140";
users.push(me);
req.io.route('hello'); //error here
});
app.io.route('hello', function(req) {
console.log('Done !');
});
错误:
TypeError: Cannot call method 'route' of undefined
at /Users/anthonycluse/Sites/Tchat-Express/app.js:78:12
我不能为app.io说话,但通常当您需要在路由之间共享相同的功能时,您也可以
a)将错误处理程序设为单独的函数,并从多个路由调用它:
function handleError(req, res) {
//handle error
}
app.post('/foo', function(req, res) {
//if conditions are met, else
handleError(req, res);
});
//user.js
module.exports = {
signin: function(req, res) {},
signinError: function(req, res) {},
};
b)通过制作模块进一步抽象:
function handleError(req, res) {
//handle error
}
app.post('/foo', function(req, res) {
//if conditions are met, else
handleError(req, res);
});
//user.js
module.exports = {
signin: function(req, res) {},
signinError: function(req, res) {},
};
路由代码
//routes.js
var user = require('../modules/user');
app.post('/signin', function(req, res) {
//validate signin
//else
user.signinError(req, res);
});
app.post('/signin-no-error', user.signin);
我会先在app.io和req.io上做一个console.log,看看它们是否也存在于您期望的地方。第78行是哪一行?也可以
util=require(“util”)顶部的code>和doconsole.log(util.inspect(req))代码>app.post的内部。它应该显示req
对象的成员和属性。这应该会给你很好的洞察力。显然在错误所在的上面。