nodejs web API 相关杂项

场景是这样的:

docker-compose中起多个服务,其中有一个是nodejs写的作为web API。

这个API 的使用者有2类:

1 docker-compose网络内其他特定服务访问,作为CRUD(post delete update)

2 一部分API 中的get要向外网开放 ,包括浏览器

分开说。

1 根据IP限制访问

在这里需要做到:

1 手工指定docker-compose网络内每个服务的IP地址,而不是每次自动分配ip导致有变化

2 nodejs 每次 收到req 要能得到client的IP地址。

https://www.cnblogs.com/xuanmanstein/p/10576476.html

2 直接安装 这个库https://www.npmjs.com/package/request-ip

// require request-ip and register it as middleware
var requestIp = require('request-ip');
app.use(requestIp.mw())

app.use(function(req, res) {
    // by default, the ip address will be set on the `clientIp` attribute
    var ip = req.clientIp;
    res.end(ip + '\n');
});

对于2

  1不加IP过滤

  2返回时加避免跨域的header

const headers_res = {
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Credentials': true}

......

app.route("/XXX")
  .get( (req, res) => {

   //.....
    res.set(headers_res)
            .send(res)
}

跨域头只能'*',不能解析多个域的列表,暂时就这样解决了

猜你喜欢

转载自www.cnblogs.com/xuanmanstein/p/10576456.html
今日推荐