首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sails.JS + MySQL:“where子句”中的未知列“NaN”

Sails.JS + MySQL:“where子句”中的未知列“NaN”
EN

Stack Overflow用户
提问于 2015-01-08 08:40:38
回答 2查看 8.2K关注 0票数 2

这是我第一次在sails.js数据库中使用mySQL,我对这个错误感到非常困惑。

我有一个叫“公司”的控制器和模型。它与mySQL数据库中的表“公司”有关。该表本身具有一对多的关联,两个表称为“模块”和“用户”(每个用户/模块必须与一个公司id连接)。我在MySQL数据库中设置了外键。

问题是..。每次从该控制器打开任何页面/操作时,都会出现以下错误:

代码语言:javascript
复制
    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'

这是我的公司模式:

代码语言:javascript
复制
    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',但它们都不起作用。

错误意味着什么?我该怎么解决呢?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-08 14:31:10

:1337/company/index是您的问题,而不是mysql或其他orm问题!

这是一个路由配置probem。打开此URL时,默认的sails行为是尝试通过默认REST访问特定的公司记录。检查默认的rest 路线行为

在您的案例中,更明确的解释是,您正在使用id "index“查询特定的公司,这不是一个数字NaN,因此您得到了这个错误。

RESTful路由,其中路径总是/:modelIdentity或/:modelIdentity

票数 6
EN

Stack Overflow用户

发布于 2021-11-08 21:29:42

对于您的具体情况,我没有确切的答案,但是,我需要指出,同时我也要指出,当各种API没有足够具体地解决错误的原因时,这是一个可悲的、臭名昭著的各种API问题,只是让异常堆栈懒洋洋地出现在下一个错误处理程序中。这常常会在实际异常的原因上完全误导开发人员。因此,要非常注意,您看到的错误文本可能与实际问题相差甚远。至少你知道有个问题。现在你必须用你自己的智慧和无尽的变化或方法来解决它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27835962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档