node.js - 使用 Express 确定 Node.js 中的请求是否为远程请求

标签 node.js express

我正在学习 Node.js。有人告诉我我可以使用 IPS property向 Express 发出请求以确定请求是否是远程的(即不是本地主机)。我的问题是,如何?

当我读到documentation时对于 IPS 属性,我不清楚如何确定请求是否是从我的本地开发计算机发出的。

谢谢!

最佳答案

// filter to git rid of non-local requests
app.all('/*', function(req, res, next) {
    if (req.ip.indexOf("127.0.0.1") > -1 )
    {
        console.log("Incoming request - Accepted");
        next();
    }
    else
    {
        console.log("Incoming request - Rejected");
        res.send("API only accessable from the local device").status(403).end();
    }
});

此代码基本上会过滤所有传入的请求,并检查它们是否来自本地主机。请记住,至少在 Windows 上,本地主机地址以 IPv6 ::ffff:127.0.0.1 形式出现,这就是我们使用 indexOf 命令的原因。

关于node.js - 使用 Express 确定 Node.js 中的请求是否为远程请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849617/

相关文章:

javascript - node.js stylus导入自动重建,过期?

javascript - 如何在 Node.js REPL 上使用 `prompt`

javascript第一个参数路径最后一个参数回调

javascript - 如何在客户端 javascript 中访问 Passport 的 req.user 变量?

javascript - 使通过 Pug 传递的变量可用于 Javascript

javascript - 如何使用socket.io实现生存时间

php - 如何从单独的脚本轮换 Winston 日志?

javascript - 使用 html-pdf 包动态生成 pdf

javascript - 在 webpack bundle 中运行 Webpack Dev Server

node.js - 如何测试expressApp.post()?