sql - 使用 Sequelize 即时创建新表

标签 sql node.js schema sequelize.js

我正在实现将数据保存到数据库的 nodejs 应用程序。应用程序接受来自/add 的发布请求,它应该接受两个参数(实际数据和表名)。所有表都将包含在模型文件中定义的相同字段和数据类型。

表名告诉了数据将被保存在哪里。目前,我的应用程序在将数据保存到一个表(名为 Test)时工作正常,但这应该扩展为适用于多个表。如果表不存在,也应该创建它们。

我已经为 Sequelize 创建了模型:

// The model schema.
const modelDefinition = {
  data: {
    type: Sequelize.JSON,
    allowNull: false,
  },
};

// Define the model.
const SensorModel = db.define('Test', modelDefinition, modelOptions);

我有单独的 Controller 文件,其中添加了数据:

sensorController.addData = (req, res) => {
    db.sync().then(() => {
  const newSensor = {
    data: req.body.data,
  };
  return Sensor.create(newSensor).then(() => {
    res.status(201).json({
      message: ' data added!',
    });
  });
});

};

来自路由文件:

router.post('/add', sensorController.addData);

目前这只会创建名为 test 的表并在其中添加数据。我想扩展它,以便在添加新数据时可以指定表名,但我对此有点迷茫,不知道该怎么做。提前致谢。

最佳答案

试试这个:

console.log('name_table:', youModel.getTableName())
youModel.tableName='NEW_TABLE_NAME';
console.log('name_table:', youModel.getTableName())

它对我有用。

关于sql - 使用 Sequelize 即时创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49110927/

相关文章:

sql - 使用 Transact-SQL 在 try catch 中使用 tran 进行 alter then update 时出现问题

node.js - SSL:Heroku、Nodejs、Socketio、ReactJS

rest - RESTful API 应该有模式吗?

mysql - 用于选择美国多个州的模式设计,或 "all"

oracle - Oracle_SID 是否与 Oracle 上的登录名相同?

sql - 运行 SQL 文件时如何将内容打印到 postgres 输出控制台?

mysql - SQL - 在文本中查找完整的单词

php - SELECT id 其中来自多列的最小值或最大值

node.js - 获取 TypeError : Router. use() 需要一个中间件函数,但得到一个未定义的

javascript - Node 抛出意外的严格模式保留字 "yield"