2016-02-26 62 views
2

那么,XD,我怎么从操作钩子中获取查询器的IP地址(如果这甚至是单词xD)?或远程钩子? (我可以用loopback.getCurrentContext()将它保存在操作挂钩上使用)。Loopback从操作挂钩获取IP地址

说:

Model.observe('loaded', function(ctx,next) { 
    ctx.ip ?? 
}); 

回答

4

所以我发现这一点:https://github.com/strongloop/loopback/issues/1495 &这样的:How to determine a user's IP address in node 从两个大的帮助,我只是把我所需要得到的地址,并将其保存在回环当前上下文这样的启动脚本:

var loopback = require('loopback'); 

module.exports = function (app) {  

    app.remotes().before('*.*', function(ctx,next) { 
    loopback.getCurrentContext().set('remoteAddress',ctx.req.connection.remoteAddress); 
    next(); 
    }); 

    app.remotes().before('*.prototype.*', function(ctx,instance,next) { 
    loopback.getCurrentContext().set('remoteAddress',ctx.req.connection.remoteAddress); 
    next(); 
    }); 
}; 

然后我得到它的操作钩这样的:

Model.observe('loaded', function(ctx,next) { 
    console.log("Remote Address: ", loopback.getCurrentContext().get('remoteAddress')); 
}); 
+0

谢谢!到目前为止,这是我发现的唯一解决方案。 –

0

更新回送3:您可以使用此属性获取IP地址:

ctx.req.connection.remoteAddress