【发布时间】:2020-01-16 17:05:48
【问题描述】:
我一直在尝试使用 mongoose 在我的数据库中存储一个 JSON 对象。我已经制作了我的架构并对其进行了建模。
我尝试将类型设置为对象,但这没有帮助。我要输入的数据在这里:https://api.ipdata.co/?api-key=test
我的代码是:
body = JSON.parse(body);
console.log(body);
const log = new model.Log({
useragent: data.useragent,
browserName: data.browser.name,
browserVersion: data.browser.version,
browserMajorVersion: parseInt(data.browser.majorVersion, 10),
deviceType: type,
CPu: data.CPU,
OSName: data.OS.name,
OSVersion: data.OS.version,
mobileOS: mobileOS,
ipAddress: ipAddress,
ipData: body (I've tried doing ipData: { ip: body.ip, ...} too)
});
我的架构:
const connectLogSchema = new mongoose.Schema({
useragent: String,
browserName: String,
browserVersion: String,
browserMajorVersion: Number,
deviceType: String,
CPU: String,
OSName: String,
OSVersion: String,
mobileOS: String,
ipAddress: String,
idData: {
ip: String,
is_eu: Boolean,
city: String,
region: String,
region_code: String,
country_name: String,
country_code: String,
continent_name: String,
continent_code: String,
latitude: Number,
longitude: Number,
postal: String,
calling_code: String,
flag: String,
emoji_flag: String,
emoji_unicode: String,
asn: {
asn: String,
name: String,
domain: String,
route: String,
type: String
},
languages: [new mongoose.Schema({name: String, native: String})],
currency: {
name: String,
code: String,
symbol: String,
native: String,
plural: String
},
time_zone: {
name: String,
abbr: String,
offset: String,
is_dst: Boolean,
current_time: String
},
threat: {
is_tor: Boolean,
is_proxy: Boolean,
is_anonymous: Boolean,
is_known_attacker: Boolean,
is_known_abuser: Boolean,
is_threat: Boolean,
is_bogon: Boolean
}
},
timestamp: { type: Date, default: () => moment().utc().format() }
});
一个空的 ipData 字段出现在数据库中,只有语言数组,但它也是空的。此时我迷路了,我不知道下一步该怎么做,请帮助!
【问题讨论】:
-
为了清楚起见,req.body 对象是否包含您要保存在数据库中的所有数据?
-
@SamiShamesEl-Deen 是的,是请求模块回调的body对象。
标签: javascript node.js json mongodb mongoose