我可以在不定义模型的情况下从 sails 连接到 mysql 数据库吗?

can i connect to mysql database from sails without defining models?

我正在使用 sails.js 和 sails-MySQL,我想连接到 MySQL 数据库。我的 workbench 中有表、函数和过程。现在我想知道是否有必要创建模型文件并再次定义我的模式?

是的,您可以在不定义模型的情况下连接到您的数据库。但是请记住,您每次都必须编写原始查询。所以首先你需要在你的 datastores.js 文件中定义你的数据库连接。然后,当您想从数据库中获取某些内容时,您可以在某些控制器中执行以下操作(假设您有 table 个用户并且您想要获取所有这些用户):

  var myDBStore = sails.getDatastore(); //gets the default datastore.
  var query = "SELECT * FROM users;";

  myDBStore.sendNativeQuery(query).exec(function (err, nativeResult) {
    if (err) {
       return res.send(err);
    }
    return res.send(nativeResult.rows);
  });

或在异步函数中使用现代方式:

  var myDBStore = sails.getDatastore(); //gets the default datastore.
  var query = "SELECT * FROM users;";
  var nativeResult;

  try {
    nativeResult = await myDBStore.sendNativeQuery(query);
  } catch (err) {
    return res.send(err);
  }

  return res.send(nativeResult.rows);

此处有更多信息:https://sailsjs.com/documentation/reference/waterline-orm/datastores 部分 "Using datastores without a model"