在Node.js中如何从JSON格式的查询结果中提取指定字段值?
你当前拿到的result是包含1个对象的数组结构,直接通过数组下标+对象属性取值即可实现需求。
最简实现
直接通过下标取数组第一个元素,再读取password属性:
const x = result[0].password
此时x的值就是'123',如果需要数字类型可以转成Number:const x = Number(result[0].password)
更稳妥的写法
建议先判断查询结果是否存在,避免数组为空时报错,另外你原有代码里的Object.values(JSON.parse(JSON.stringify(rows)))属于冗余操作,mysql的query接口返回的rows本身就是可直接操作的数组,不需要额外转换:
var email = req.body.email var sql = 'Select password FROM user where email = ' + mysql.escape(email) con.query(sql, (err, rows, fields) => { if (!err) { res.send(rows) if (rows.length > 0) { const x = rows[0].password console.log(x) // 输出 123 } else { console.log('未查询到对应用户信息') } } else console.log(err) })
可选:解构赋值写法
如果使用ES6及以上语法,也可以用解构赋值一步完成取值:
// 直接解构出password字段赋值给变量x const [{password: x}] = result
内容的提问来源于stack exchange,提问作者Nirodha Wickramarathna
相关产品推荐
相关产品推荐

