帆js /水线/ mysql表名和表前缀

sails js / waterline / mysql table name and table prefix

本文关键字:前缀 mysql js 水线      更新时间:2023-09-26

我是sail .js的新手。我想从表中选择所有记录。如何使用。find() .

特别是水线将如何知道从哪个表我想要的数据?因为我们没有在model中提到任何表名。我知道有。query()。但是这在水线基本创建/更新/查找/删除方法中是可能的吗?

另一个问题如何使用前缀表名在sails.js ?比如我想使用sails_product作为表名

我是sails.js的新手。我想从表中选择所有记录。如何使用。find() .

如果您的模型名称是,例如,Book,您将选择所有具有

Book记录。
Book.find()
    .exec(function(err, books) {
        if (err) return res.serverError();
        console.log(books); // 'books' is an array of the found records
    })

特别是水线将如何知道从哪个表我想要的数据?因为我们没有在model中提到任何表名。我知道有。query()。但是这在水线基本创建/更新/查找/删除方法中是可能的吗?

是的,有可能。对于水线,您根本不需要处理表名之类的问题,您所需要的只是模型名。创建,更新,删除所有的工作方式都与上面的find示例相同-所以ModelName.actionName()

另一个问题如何使用前缀表名在sails.js ?例如,我想使用sails_product作为表名。

默认情况下,waterline使用小写的模型名作为对应的表名。但是,您可以在模型设置中覆盖这一点。例如,如果您在一个名为Book.js的文件中定义了模型,其内容将如下所示:

module.exports = {
    attributes: {
        name: {
            type: 'String',
            required: true
        },
        price: {
            type: 'float'
        }
    },
    tableName: 'custom_book_table'
}

这样,在数据库中创建的实际表将被称为custom_book_table,而在find查询等中,您仍然将模型称为Book

下面是Waterline和Sails文档的链接。在模型/查询相关的问题上,我肯定会首先从Waterline文档中搜索。