将bin / www的命令行参数传递给app.js,然后传递给模块

时间:2019-06-17 12:45:41

标签: node.js

我已经看过解决方案here,尽管这是将参数传递给模块的正确解决方案,但我的要求是将诸如参数之类的命令从bin / www传递到app.js到模块。 这是在WebStorm中创建的项目,该项目的启动脚本为bin / www。

我有一个传统的NodeJS项目结构,该应用程序从bin / www开始,该应用程序调用app.js,而app.js具有路由器模块。

启动脚本是bin / www,我无法更改,我想将参数(配置文件的路径)传递给路由器模块。

在不显着更改文件结构的情况下实现此目标的最佳方法是什么?

app.js具有以下结构:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index')(path_config_file);
var usersRouter = require('./routes/users');
var app = express();


module.exports = app;

正如我所展示的,我想将path_config_file传递给路由/索引模块,该模块将作为命令行参数传递。

我无法启动app.js,因为该项目具有现有的CI / CD,并且我无法更改该过程。

我需要能够将参数传递为node bin/www path_config_file并将其传递给app.js

谢谢。

1 个答案:

答案 0 :(得分:0)

基本上,您需要读取保存这些process.argv参数的command line变量。请查看下一篇文章的答案:

How to pass command line arguments on node