4

我尝试使用 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";
    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
4

1 回答 1

0

我不能代表 app.io,但通常当您需要在路由之间共享相同的函数时,您可以
a) 将错误处理程序设为单独的函数并从多个路由调用它:

function handleError(req, res) {
  //handle error
}

app.post('/foo', function(req, res) {
  //if conditions are met, else
  handleError(req, res); 
});

b)通过制作一个模块进一步抽象:

//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);
于 2014-07-28T21:06:45.363 回答