如何在nodejs程序中声明一个sequelize-auto

How to declare a sequelize-auto in nodejs program?

本文关键字:一个 sequelize-auto 声明 nodejs 程序      更新时间:2023-09-26

当我在程序中声明sequelize-auto时,我会遇到类似o is not defined的错误。我尝试了很多方法来纠正这个问题,但都不起作用。我引用了此链接(https://github.com/sequelize/sequelize-auto)。

我的代码是

var Sequelizeauto = require('sequelize-auto');
var tableCreatin = new Sequelizeauto -o [modelPath] -d <loginform> -h <localhost> -u <root> -p <3306> -x <root> -e [mysql];

错误

ReferenceError: o is not defined
    at Object.<anonymous> (D:'NodeProject'Sequeliser'server.js:23:39)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:475:10)
    at startup (node.js:118:18)
    at node.js:952:3

我正在使用grunt来运行此命令。当我运行grunt模式命令时,我也遇到了同样的错误。通过在全球范围内安装sequelize auto解决了问题:npm install -g sequelize-auto

希望这有帮助。

您必须在termental中运行命令sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u my_username -p 5432 -x my_password -e postgres,它不是JS代码。

必须启用PowerShell脚本执行。

有关详细信息,请参阅:

https://windowsloop.com/enable-powershell-scripts-execution-windows-10/

对于这么多年后来到这里的任何人来说,这实际上(至少现在)可以用一种非常简单的方式完成。可以在他们的样品中找到

const SequelizeAuto = require('sequelize-auto');
const output = "./models";
const options = { directory: output, caseFile: 'l', caseModel: 'p', caseProp: 'c', lang: 'js', useDefine: false, singularize: true, spaces: true, indentation: 2 };
const config = {
    dialect: '...',
    host: "...",
    port: ...,
    dbname: "...",
    user: "...",
    pass: "...",
    ...options
};
var auto = new SequelizeAuto(config.dbname, config.user, config.pass, config);
auto.run().then(data => {
  const tableNames = Object.keys(data.tables);
  console.log(tableNames);
});