我刚刚开始使用 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/