V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ryanking8215
V2EX  ›  程序员

今天搞了老半天,最后发现是自己闹了个乌龙

  •  
  •   ryanking8215 ·
    ryanking8215 · 2014-08-01 21:43:26 +08:00 · 4395 次点击
    这是一个创建于 3758 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用sequelizejs,是一个orm for nodejs,
    在设置多对多关系后,例如A.hasMany(B), A的实例会自动得到getBs()的方法,这个名称是根据表名来的
    问题在我的B表名是"binfo",使用getBinfos()老是说方法未定义。

    然后把这2个表抽出来,单独作测试,不行,使用student-course例子,又是好的,不得其解。来来回回弄了好久,厕所去了几趟,最后发现表名结尾不为'o'的都好,为'o'的就不行,确认问题之后,把这个问题报给了sequelizejs。心想这个bug真奇葩...,于情于理都不应该。

    晚上闲来无事,再拿出来log一下,发现方法竟然是getBinfoes(),原来sequelizejs在生成复数的时候,还考虑了英语语法,MD把这茶给忘了...

    见:
    https://github.com/sequelize/sequelize/issues/2106
    3 条回复    2014-08-06 20:51:06 +08:00
    zhxhwyzh14
        1
    zhxhwyzh14  
       2014-08-01 22:29:26 +08:00
    啊哈哈
    xieren58
        2
    xieren58  
       2014-08-02 10:22:36 +08:00
    knex.js
    ryanking8215
        3
    ryanking8215  
    OP
       2014-08-06 20:51:06 +08:00 via iPad
    Knexjs and bookshelfjs 比较灵活一点,api更合胃口,而且是bluebird,和目前的项目契合
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:50 · PVG 23:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.