当前位置: 代码迷 >> JavaScript >> 如何在命令行上的javascript文件中访问嵌套的js对象
  详细解决方案

如何在命令行上的javascript文件中访问嵌套的js对象

热度:75   发布时间:2023-06-13 11:43:05.0

所以我正在使用nodejs,我有下面的js对象。

var settings ={
  "config": {
     "username": "root",
     "password": null,
     "database": "portal_test",
     "host": "122.0.0.4",
     "dialect": "postgres"
  }
}

我将该对象作为local.env.js中的模块返回。 像这样

module.exports = settings;

现在在我的命令行上,我正在运行一个带有config标志的sequelize命令,并将如下所示的路径传递给配置文件

node_modules/.bin/sequelize db:migrate --config server/config/local.env.js

现在我的问题是我该如何引用设置对象内部的配置对象。 我在下面尝试了类似的方法,但是没有用。

--config server/config/local.env.js[config]

请帮忙。 谢谢。 注意设置也有其他对象,而不仅仅是配置。 所以我不能做module.exports = settings.config

这是一种快速而肮脏的方式来访问您的配置(根据您的环境进行设置:

您引用Sequelize配置的文件:

"use strict";

var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var env = process.env.NODE_ENV || "development";
var config = require(__dirname + '/../config/config.json')[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);

config.json

{
  "development": {
    "username": "username",
    "password": null,
    "database": "c9",
    "host": "0.0.0.0",
    "dialect": "mysql"
  },
  "test": {
    "username": "username",
    "password": null,
    "database": "c9",
    "host": "0.0.0.0",
    "dialect": "mysql"
  },
  "production": {
    "username": "username",
    "password": null,
    "database": "c9",
    "host": "0.0.0.0",
    "dialect": "mysql"
  }
}

请参见以下链接: :

  相关解决方案