使用 express/mongoose 将用户 IP 地址保存到数据库

Posted

技术标签:

【中文标题】使用 express/mongoose 将用户 IP 地址保存到数据库【英文标题】:Save user IP adress to DB using express/mongoose 【发布时间】:2021-03-11 14:58:58 【问题描述】:

我想使用用户的 mongoose 模型文件将用户 IP 地址保存到 mongoDB。 任何人有什么建议我该怎么做?

用户模块文件架构:


const userSchema = new Schema(
    username: 
        type: String,
        required: true,
        unique: true,
        trim: true,
        minlength: 4
    ,
    password: 
        type: String,
        required: true,
        trim: true,
        minlength: 4
    ,
    IP: 
        type: String
    
,  timestamps: true );

【问题讨论】:

见这里***.com/questions/10849687/… 【参考方案1】:

使用 express 这应该相当简单:

app.post('/your-route', async ( req, res ) => 
  await YourModel.save( 
         IP: req.connection.remoteAddress, 
         // other fields
        );
);

如果您使用代理或需要更复杂的方法,您可以考虑使用像 https://www.npmjs.com/package/request-ip 这样的库来确定 IP 地址。

【讨论】:

当我运行它时,我在 DB 中得到“IP:”::1”,据我了解,这意味着 127.0.0.1,对吗?它会正常工作(我会得到正确的本地 IP ? ) 当我在其他网络上运行它时? 是的,因为您使用的是 IPv6,如果您从本地主机执行请求,您将看到 ::1。

以上是关于使用 express/mongoose 将用户 IP 地址保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nodejs、Express、Mongoose 和 React 将图像上传到 MongoDB

无法将值传递到 MongoDB,使用 Node 和 Express,Mongoose

基于 GET 参数的 Express/Mongoose REST API 路由

如何使用 express、mongoose 将 mp3 上传到 mongodb

使用 Node.js Express Mongoose 删除列表项

node + express +mongoose 实现基本登录注册