ER_BAD_FIELD_ERROR 在 sails.js 中使用基线
ER_BAD_FIELD_ERROR in sails.js using waterline
我知道有类似的问题,但他们没有帮助我。
尝试在模型上使用 .find() 方法时出现错误:product2
(.query() 方法有效)
我试图找出如何从数据库中获取更详细的输出,但失败了。
{
"error": "E_UNKNOWN",
"status": 500,
"summary": "Encountered an unexpected error",
"raw": {
"code": "ER_BAD_FIELD_ERROR",
"errno": 1054,
"sqlState": "42S22",
"index": 0
}
}%
我的模型"Product2.js"
module.exports = {
connection:'someMysqlServer',
migration:'safe',
tableName:'NUTR_DATA',
attributes:{
id:{
columnName:'Nutr_No',
primaryKey:true,
type:'string'
}
}
};
routes.js
module.exports.routes{
'GET /select':'Product2Controller.select'
};
Product2Controller.js
module.exports = {
select:function(req,res){
Product2.find({limit:10}).exec(function(err, results) {
if (err){res.serverError(err)}
else{res.json(results)};
});
}
};
数据库架构
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| NDB_No | varchar(5) | NO | PRI | NULL | |
| Nutr_No | varchar(3) | NO | PRI | NULL | |
| Nutr_Val | decimal(13,3) | NO | | NULL | |
| Num_Data_Ptr | decimal(10,0) | NO | | NULL | |
| Std_Error | decimal(11,3) | YES | | NULL | |
| Src_Cd | varchar(2) | NO | | NULL | |
| Deriv_cd | varchar(4) | YES | | NULL | |
| Ref_NDB_No | varchar(5) | YES | | NULL | |
| Add_Nutr_Mark | varchar(1) | YES | | NULL | |
| Num_Studies | int(11) | YES | | NULL | |
| Min | decimal(13,3) | YES | | NULL | |
| Max | decimal(13,3) | YES | | NULL | |
| DF | int(11) | YES | | NULL | |
| Low_EB | decimal(13,3) | YES | | NULL | |
| Up_EB | decimal(13,3) | YES | | NULL | |
| Stat_cmd | varchar(10) | YES | | NULL | |
| AddMod_Date | varchar(10) | YES | | NULL | |
| CC | varchar(1) | YES | | NULL | |
+---------------+---------------+------+-----+---------+-------+
有什么问题吗?
可能的问题是您正在定义自己的主键字段,但 Waterline 仍然自动添加自己的 id
字段。您可以通过将 autoPK: false
添加到您的模型配置来关闭此行为。 autoPK
的文档是 here.
感谢您的回复。问题没有设置
autoCreatedAt: false,
autoUpdatedAt: false
我没有看到我的 ide 实际上给我比 curl 更详细的输出。如果将错误放在平静的船图和有关提升服务器的信息下,也许会更好:P
我知道有类似的问题,但他们没有帮助我。
尝试在模型上使用 .find() 方法时出现错误:product2 (.query() 方法有效)
我试图找出如何从数据库中获取更详细的输出,但失败了。
{
"error": "E_UNKNOWN",
"status": 500,
"summary": "Encountered an unexpected error",
"raw": {
"code": "ER_BAD_FIELD_ERROR",
"errno": 1054,
"sqlState": "42S22",
"index": 0
}
}%
我的模型"Product2.js"
module.exports = {
connection:'someMysqlServer',
migration:'safe',
tableName:'NUTR_DATA',
attributes:{
id:{
columnName:'Nutr_No',
primaryKey:true,
type:'string'
}
}
};
routes.js
module.exports.routes{
'GET /select':'Product2Controller.select'
};
Product2Controller.js
module.exports = {
select:function(req,res){
Product2.find({limit:10}).exec(function(err, results) {
if (err){res.serverError(err)}
else{res.json(results)};
});
}
};
数据库架构
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| NDB_No | varchar(5) | NO | PRI | NULL | |
| Nutr_No | varchar(3) | NO | PRI | NULL | |
| Nutr_Val | decimal(13,3) | NO | | NULL | |
| Num_Data_Ptr | decimal(10,0) | NO | | NULL | |
| Std_Error | decimal(11,3) | YES | | NULL | |
| Src_Cd | varchar(2) | NO | | NULL | |
| Deriv_cd | varchar(4) | YES | | NULL | |
| Ref_NDB_No | varchar(5) | YES | | NULL | |
| Add_Nutr_Mark | varchar(1) | YES | | NULL | |
| Num_Studies | int(11) | YES | | NULL | |
| Min | decimal(13,3) | YES | | NULL | |
| Max | decimal(13,3) | YES | | NULL | |
| DF | int(11) | YES | | NULL | |
| Low_EB | decimal(13,3) | YES | | NULL | |
| Up_EB | decimal(13,3) | YES | | NULL | |
| Stat_cmd | varchar(10) | YES | | NULL | |
| AddMod_Date | varchar(10) | YES | | NULL | |
| CC | varchar(1) | YES | | NULL | |
+---------------+---------------+------+-----+---------+-------+
有什么问题吗?
可能的问题是您正在定义自己的主键字段,但 Waterline 仍然自动添加自己的 id
字段。您可以通过将 autoPK: false
添加到您的模型配置来关闭此行为。 autoPK
的文档是 here.
感谢您的回复。问题没有设置
autoCreatedAt: false,
autoUpdatedAt: false
我没有看到我的 ide 实际上给我比 curl 更详细的输出。如果将错误放在平静的船图和有关提升服务器的信息下,也许会更好:P