如何在模型中捕获客户端的IP?

时间:2015-12-07 16:25:38

标签: javascript loopbackjs strongloop

请考虑以下代码:

// common/models/test.js

module.exports = function(Test) {
    Test.observe('before save', function (ctx, next) {
        var x = <GET CLIENT IP> // <-----------
        next();
    });
};

如何在模型中捕获客户端的IP?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是使用远程钩子从上下文获取请求对象。重要的是要注意来自操作挂钩和远程挂钩的上下文对象是不同的。

检查操作挂钩docs和远程挂钩docs以获取更多信息。

module.exports = function(Test) {

  Test.beforeRemote('**', function (ctx, unused, next) {
    Test.ip = ctx.req.connection.remoteAddress;
    next();
  });

  Test.observe('before save', function (ctx, next) {
    if(Test.ip){
        console.log("IP: ", Test.ip);
    }
    next();
  });

};