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

368yc8dk  于 2023-04-11  发布在  Node.js
关注(0)|答案(4)|浏览(180)

当我在我的程序中声明一个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
j2qf4p5b

j2qf4p5b1#

我正在使用grunt来运行这个命令。当我运行grunt schema命令时,我得到了相同的错误。它通过全局安装sequelize-auto得到了解决:npm install -g sequelize-auto
希望这对你有帮助。

2ledvvac

2ledvvac2#

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

lymgl2op

lymgl2op3#

您必须启用PowerShell脚本执行。
有关详细信息,请参阅:
https://windowsloop.com/enable-powershell-scripts-execution-windows-10/

gzjq41n4

gzjq41n44#

对于那些经过这么多年才来到这里的人来说--这实际上(至少现在)是可以做到的,而且是以一种非常直接的方式。

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);
});

相关问题