这是我第一次在sails.js数据库中使用mySQL,我对这个错误感到非常困惑。
我有一个叫“公司”的控制器和模型。它与mySQL数据库中的表“公司”有关。该表本身具有一对多的关联,两个表称为“模块”和“用户”(每个用户/模块必须与一个公司id连接)。我在MySQL数据库中设置了外键。
问题是..。每次从该控制器打开任何页面/操作时,都会出现以下错误:
error: Sending 500 ("Server Error") response:
Error (E_UNKNOWN) :: Encountered an unexpected error
: ER_BAD_FIELD_ERROR: Unknown column 'NaN' in 'where clause'
at Query.Sequence._packetToError (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:30:14)
at Query.ErrorPacket (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Query.js:82:18)
at Protocol._parsePacket (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:213:24)
at Parser.write (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:37:16)
at Socket.<anonymous> (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:75:28)
at Socket.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:764:14)
at Socket.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:426:10)
--------------------
at Protocol._enqueue (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:110:48)
at PoolConnection.Connection.query (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:166:25)
at PoolConnection.liveConnection.query (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/lib/connections/spawn.js:98:16)
at __FIND__ (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/lib/adapter.js:836:20)
at afterwards (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/lib/connections/spawn.js:104:5)
at /Users/alanyudh/Sites/matta/node_modules/sails-mysql/lib/connections/spawn.js:40:7
at Pool.<anonymous> (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:51:14)
at Handshake.Sequence.end (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:78:24)
at Handshake.Sequence.OkPacket (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:87:8)
at Protocol._parsePacket (/Users/alanyudh/Sites/matta/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:213:24)
Details: Error: ER_BAD_FIELD_ERROR: Unknown column 'NaN' in 'where clause'这是我的公司模式:
module.exports = {
attributes: {
name:{
type:"string",
required:true,
unique:true,
minLength: 2
},
type:{
type:"string",
enum: ['hq','sub'],
defaultsTo: 'hq'
},
desc:{
type:"text",
required:true
},
logo: {
type: 'string'
},
address: {
type: 'text'
},
city: {
type: 'string'
},
region: {
type: 'string'
},
country: {
type: 'string'
},
zipcode: {
type: 'string'
},
phone_number: {
type: 'string'
},
website: {
type: 'string'
}
},
};我试过使用'autoPK: false','schema: true',添加'columnName/fieldName',但它们都不起作用。
错误意味着什么?我该怎么解决呢?
非常感谢。
发布于 2015-01-08 14:31:10
:1337/company/index是您的问题,而不是mysql或其他orm问题!
这是一个路由配置probem。打开此URL时,默认的sails行为是尝试通过默认REST访问特定的公司记录。检查默认的rest 路线行为。
在您的案例中,更明确的解释是,您正在使用id "index“查询特定的公司,这不是一个数字NaN,因此您得到了这个错误。
RESTful路由,其中路径总是/:modelIdentity或/:modelIdentity
发布于 2021-11-08 21:29:42
对于您的具体情况,我没有确切的答案,但是,我需要指出,同时我也要指出,当各种API没有足够具体地解决错误的原因时,这是一个可悲的、臭名昭著的各种API问题,只是让异常堆栈懒洋洋地出现在下一个错误处理程序中。这常常会在实际异常的原因上完全误导开发人员。因此,要非常注意,您看到的错误文本可能与实际问题相差甚远。至少你知道有个问题。现在你必须用你自己的智慧和无尽的变化或方法来解决它。
https://stackoverflow.com/questions/27835962
复制相似问题