sequelize.query() returns 两次相同的结果
sequelize.query() returns same result twice
我在 nodejs 项目中工作,使用 sequelize
连接 mysql 数据库。我还使用 sequelize-values 从 Sequelize 实例获取原始数据。
我写了下面的代码
var Sequelize = require('sequelize');
require('sequelize-values')(Sequelize);
var sequelizeObj = new Sequelize('mysql://root:@localhost/database');
sequelizeObj.authenticate().then(function (errors) {
console.log(errors)
});
sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200").then(function (result) {
});
现在 table reports
只有 1 条记录 id
1200,但是 result
为相同的记录提供了两个对象,意味着两个记录的 id 相同1200.
[ [ { id: 1200,
productivity_id: 9969,
gross_percentage_points: 100 } ],
[ { id: 1200,
productivity_id: 9969,
gross_percentage_points: 100 } ] ]
让我知道我做错了什么?
第一个对象是结果对象,第二个是元数据对象(包含受影响的行等)- 但在 mysql 中,这两个对象是相等的。
将 { type: Sequelize.QueryTypes.SELECT }
作为第二个参数传递给您一个结果对象(省略元数据对象
https://github.com/sequelize/sequelize/wiki/Upgrading-to-2.0#changes-to-raw-query
尝试:
sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200", { type: Sequelize.QueryTypes.SELECT }).then(function (result) {
});
添加{ type: Sequelize.QueryTypes.SELECT }
作为第二个参数,也记得先导入Sequelize。
已解决
sequelize.query("SELECT ...", { type: Sequelize.SELECT })
.then(result => {
if (!result ) {
res.status(404).send({ message: "Data Not found." });
}
res.status(200).send(result[0]);
})
.catch(err => {
res.status(500).send({ message: err.message });
});
我在 nodejs 项目中工作,使用 sequelize
连接 mysql 数据库。我还使用 sequelize-values 从 Sequelize 实例获取原始数据。
我写了下面的代码
var Sequelize = require('sequelize');
require('sequelize-values')(Sequelize);
var sequelizeObj = new Sequelize('mysql://root:@localhost/database');
sequelizeObj.authenticate().then(function (errors) {
console.log(errors)
});
sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200").then(function (result) {
});
现在 table reports
只有 1 条记录 id
1200,但是 result
为相同的记录提供了两个对象,意味着两个记录的 id 相同1200.
[ [ { id: 1200,
productivity_id: 9969,
gross_percentage_points: 100 } ],
[ { id: 1200,
productivity_id: 9969,
gross_percentage_points: 100 } ] ]
让我知道我做错了什么?
第一个对象是结果对象,第二个是元数据对象(包含受影响的行等)- 但在 mysql 中,这两个对象是相等的。
将 { type: Sequelize.QueryTypes.SELECT }
作为第二个参数传递给您一个结果对象(省略元数据对象
https://github.com/sequelize/sequelize/wiki/Upgrading-to-2.0#changes-to-raw-query
尝试:
sequelizeObj.query("SELECT * FROM `reports` WHERE `id` = 1200", { type: Sequelize.QueryTypes.SELECT }).then(function (result) {
});
添加{ type: Sequelize.QueryTypes.SELECT }
作为第二个参数,也记得先导入Sequelize。
已解决
sequelize.query("SELECT ...", { type: Sequelize.SELECT })
.then(result => {
if (!result ) {
res.status(404).send({ message: "Data Not found." });
}
res.status(200).send(result[0]);
})
.catch(err => {
res.status(500).send({ message: err.message });
});