javascript - 为什么我不能将 SailsJS 模型命名为与 MySQL 表相同的名称?

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

我刚刚开始使用 Sails JS,对 RESTful API 缺乏经验。为了开始工作,我生成了一个 User模型如指南所示。我认为这与我的 users 相匹配 table 。我根据表列向模型添加了属性。当我解除服务器并向我的用户发出 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 。这让我很失望。根据语法错误,我认为也许这是我可以做的事情,尽管我没有在任何地方编写任何查询。然后我注意到,当我将模型名称从“Timeline”更改为“Timelines”时,我没有遇到问题。

在我看来,Sails 在将模型命名为与表格相同的名称时遇到了问题。为什么是这样?这样做不是更符合逻辑吗?此外,Sails 是否试图自动将我的模型与我的表格匹配?

最佳答案

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

要检查这一点,请安装 clean sails 实例,将 models.migrate 保存为等于 alter 的配置,并使用 sailsgenerate 生成所需的任何 API api apiName.扬 sails 起航,您将看到 apiName 表存在于您的数据库和 ApiName.js 模型中。

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

关于javascript - 为什么我不能将 SailsJS 模型命名为与 MySQL 表相同的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067583/

相关文章:

javascript - 无法使用 QUnit 的参数化插件

javascript - 将数组拆分为给定大小的 block

asp.net-mvc - 异常 RedirectToAction 上的 asp.net MVC antiforgerytoken

javascript - Firefox onkeydown 检测按下的键

今天的 mySQL 行不会持续 24 小时

MySQL全表更新时死锁

mysql - Rails 种子在 db :seed 时未在数据库中创建实例

c# - 需要两种类型的强类型时怎么办

iphone - 使用 AppDelegate 共享数据

javascript - Extjs 在窗口中验证面板