【问题标题】:Why can't I name my SailsJS models the same as my MySQL tables?为什么我不能将我的 SailsJS 模型命名为与我的 MySQL 表相同的名称?
【发布时间】:2015-03-15 23:41:01
【问题描述】:

我刚刚开始使用 Sails JS,对 RESTful API 缺乏经验。为了让事情开始,我按照指南的建议生成了一个User 模型。我认为这将与我的 users 表匹配。我根据我的表格列向我的模型添加了属性。当我提升我的服务器并向我的用户发出 GET 请求时,它返回了我的所有用户!我认为此时我可以生成其余的模型,所以我又创建了几个。那是我遇到问题的时候。我开始收到此错误:ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC FROM 'timeline' AS "timeline"' at line 1。这让我失望了。基于语法错误,我想也许这是我可以做的事情,尽管我没有在任何地方写任何查询。然后我注意到,当我将模型名称从“时间轴”更改为“时间轴”时,我没有遇到任何问题。

在我看来,Sails 对我将模型命名为与表格相同的名称存在问题。为什么是这样?这样做不是更合乎逻辑吗?此外,Sails 是否会尝试自动将我的模型与我的表格匹配?

【问题讨论】:

标签: javascript mysql model-view-controller express sails.js


【解决方案1】:

在 'connection' 位置提供表名作为 tableName: 'My_Table_Name' 并在 config/connections.js 文件中提供连接为 sql服务器:{ 适配器:'sails-sqlserver', 用户:'用户名', 密码:'你的密码', 数据库:'数据库名称' },

并将此连接与 config/models.js 作为 连接:'sqlServer'

【讨论】:

    【解决方案2】:

    是的,您可以使用 ORM 将模型名称与表名称相同,但在此您不需要在模型中定义 tableName。在 ORM 中会自动匹配模型名和表名。

    【讨论】:

      【解决方案3】:

      没有。 Sails.js 将表命名为模型(首字母小写)。您可能在其他地方出现错误,或者您的应用程序在sails 引擎重新生成数据库表之前崩溃。

      要检查这个安装干净的风帆实例,在您的配置中保存等于altermodels.migrate,并使用sails generate api apiName 生成您想要的任何API。扬帆起航,您会看到 apiName 表存在于您的数据库和 ApiName.js 模型中。

      在使用旧的旧数据库或模型名称不代表它将存储的数据时,此行为可能会产生问题。在这种情况下,您可以将模型中的 tableName 属性设置为与表的名称相同 (documentation)。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,我通过像这样连接我的 SQL 表并简单地给我的 rows columnName 属性来解决它

        api/models/User.js
        module.exports = {
          connection: 'shinyNewMySQLDatabase',
          attributes: {
            name: {
              type: 'string',
              columnName: 'MY_SQL_COLUMN_NAME'
            },
            password: {
              type: 'string',
              columnName: 'MY_SQL_COLUMN_PASSWORD'
            },
            email: {
              type: 'email',
              unique: true,
              columnName: 'MY_SQL_COLUMN_EMAIL'
            }
          }
        };
        

        查看以下文档 http://sailsjs.org/documentation/concepts/models-and-orm/attributes 如果有帮助,请告诉我

        【讨论】:

          猜你喜欢
          • 2021-03-31
          • 2020-01-14
          • 2014-12-28
          • 2014-07-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多