node.js 和处理重定向后的数据

标签 node.js express

我有一个用 Node.js + Express 编写的应用程序,用于处理传入数据并将客户重定向到其他地方。问题是处理可能需要一段时间(主要是与统计数据相关,因此特定于 GEO 的数据+数据库查找),因此捕获必要的 header (用于数据处理)、发送 301/302 header 和 THEN 处理捕获的数据?目标是尽快重定向客户,并且在处理完成后不要让他们等待,因为处理本身与重定向无关(我们可以假设目标 URL 是固定的)。

例如:

...
app.get('/click', function(req, res, next) {
    // capture some incoming data
    var ua = req.get('User-Agent');
    var ip = (req.headers['x-forwarded-for'] || 
            req.connection.remoteAddress || 
            req.socket.remoteAddress;
    // redirect
    res.redirect(302,"http://www.google.com");
    // heavy processing on incoming
    processData(ua, ip);
});
...

最佳答案

是的,这很好,假设 processData 是异步的(几乎可以肯定已经是异步的),以避免阻塞 Express 服务器。随着系统的扩展,您应该考虑将 processData 函数分派(dispatch)到队列,以便由其他机器处理它们。查看http://learnboost.github.io/kue/https://github.com/resque/resque .

关于node.js 和处理重定向后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19658393/

相关文章:

javascript - Fabric.js 从 JSON 加载 Canvas 后在 Node 服务器上创建图像

node.js - node js mongodb数据库连接报错连接服务器失败

node.js - 将多个 MJML 文件渲染为一个 MJML 文件/字符串

javascript - 如何在数组中推送多个值?

javascript - 序列化更新返回之前和之后的结果

node.js - 使用Express,如何实现常用的包装器功能来处理错误

javascript - 如何在 node.js 中重定向然后停止

node.js - Yeoman、Angular Generator 和 Karma 测试不工作

Node.js Express app.use ('/route' )遇到其他路线?

javascript - node.js - 将不同数据发送到不同客户端的良好实现是什么?