Solución:
Resulta que son objetos normales y puedes acceder a ellos a través de user_id
.
RowDataPacket es en realidad el nombre de la función constructora que crea un objeto, se vería así new RowDataPacket(user_id, ...)
. Puedes comprobar accediendo a su nombre [0].constructor.name
Si el resultado es una matriz, tendría que usar [0].user_id
.
También encontré el mismo problema recientemente, cuando uso la línea de flotación en un proyecto expreso para consultas complejas, uso la declaración SQL para consultar.
esta es mi solución: primero transforme el valor de retorno (objeto RowDataPacket) en una cadena y luego convierta esta cadena en el objeto json.
El siguiente es el código:
//select all user (查询全部用户)
find: function(req, res, next){
console.log("i am in user find list");
var sql="select * from tb_user";
req.models.tb_user.query(sql,function(err, results) {
console.log('>> results: ', results );
var string=JSON.stringify(results);
console.log('>> string: ', string );
var json = JSON.parse(string);
console.log('>> json: ', json);
console.log('>> user.name: ', json[0].name);
req.list = json;
next();
});
}
La siguiente es la consola:
>> results: [ RowDataPacket {
user_id: '2fc48bd0-a62c-11e5-9a32-a31e4e4cd6a5',
name: 'wuwanyu',
psw: '123',
school: 'Northeastern university',
major: 'Communication engineering',
points: '10',
datems: '1450514441486',
createdAt: Sat Dec 19 2015 16:42:31 GMT+0800 (中国标准时间),
updatedAt: Sat Dec 19 2015 16:42:31 GMT+0800 (中国标准时间),
ID: 3,
phone: 2147483647 } ]
>> string: [{"user_id":"2fc48bd0-a62c-11e5-9a32-a31e4e4cd6a5","name":"wuwanyu","psw":"123","school":"Northeastern university","major":"Communication engineering","points":"10","datems":"1450514
441486","createdAt":"2015-12-19T08:42:31.000Z","updatedAt":"2015-12-19T08:42:31.000Z","ID":3,"phone":2147483647}]
>> json: [ { user_id: '2fc48bd0-a62c-11e5-9a32-a31e4e4cd6a5',
name: 'wuwanyu',
psw: '123',
school: 'Northeastern university',
major: 'Communication engineering',
points: '10',
datems: '1450514441486',
createdAt: '2015-12-19T08:42:31.000Z',
updatedAt: '2015-12-19T08:42:31.000Z',
ID: 3,
phone: 2147483647 } ]
>> user.name: wuwanyu
Con Object.prototype
Acercarse, JSON.parse(JSON.stringify(rows))
devuelve objeto, extrae valores con Object.values()
const result = Object.values(JSON.parse(JSON.stringify(rows)));
Uso:
result.forEach((v) => console.log(v));