Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“调用javascript文件”;启动功能“;及;参数“;_Javascript_Node.js_Electron - Fatal编程技术网

使用“调用javascript文件”;启动功能“;及;参数“;

使用“调用javascript文件”;启动功能“;及;参数“;,javascript,node.js,electron,Javascript,Node.js,Electron,我正在开发一个简单的eleton应用程序 我有两个javascript文件(NodeJs)。第一个文件正在调用第二个文件。。我的代码正在运行 我想修改这一行:require('./mitm.js')以接受参数。 我想在mitm.js文件中添加一个start函数,并在main.js文件中使用object.start(),使用参数配置代理并替换”http://proxy:1111“ 示例:对象启动(参数) 文件1:main.js const electron = require('electron'

我正在开发一个简单的eleton应用程序

我有两个javascript文件(NodeJs)。第一个文件正在调用第二个文件。。我的代码正在运行

我想修改这一行:
require('./mitm.js')以接受参数。
我想在mitm.js文件中添加一个start函数,并在main.js文件中使用object.start(),使用参数配置代理并替换
”http://proxy:1111“

示例:对象启动(参数)

文件1:main.js

const electron = require('electron')

const {app, BrowserWindow, session} = require('electron')
const path = require('path')
const url = require('url')

//call mitm proxy
require('./mitm.js');

let win

function createWindow () {

    win = new BrowserWindow({width: 800, height: 800})

     win.webContents.session.setProxy({proxyRules:'localhost:8080'}, function () {
        win.loadURL(url.format({
            pathname: path.join(__dirname, 'index.html'),
            protocol: 'file:',
            slashes: true
        })) 
    });

}

app.on('ready', createWindow)
文件2:mitm.js

var HttpProxyAgent = require('http-proxy-agent');
var HttpsProxyAgent = require('https-proxy-agent');

var Proxy = require('http-mitm-proxy');
var proxy = Proxy();

proxy.listen({
    port: 8080,
    httpAgent: new HttpProxyAgent("http://proxy:1111"), //example
    httpsAgent: new HttpsProxyAgent("http://proxy:1111") //example
});

proxy.onRequest(function(ctx, callback) {

    console.log('-------- onRequest-------- ')
    // console.log(ctx)

    return callback();
});

proxy.onResponse(function(ctx, callback) {

    console.log('-------- onResponse-------- ')
    // console.log(ctx)

    return callback();
});
我如何在nodeJs中执行此操作


谢谢你

mitm.js中
,添加函数
start(param)
,将逻辑放入其中,然后导出它

// mitm.js
var HttpProxyAgent = require('http-proxy-agent');
var HttpsProxyAgent = require('https-proxy-agent');

var Proxy = require('http-mitm-proxy');
var proxy = Proxy();

function start (param) {
    proxy.listen({
        port: 8080,
        httpAgent: new HttpProxyAgent(param), 
        httpsAgent: new HttpsProxyAgent(param)
    });

    proxy.onRequest(function(ctx, callback) {
        console.log('-------- onRequest-------- ')    
        return callback();
    });

    proxy.onResponse(function(ctx, callback) {
        console.log('-------- onResponse-------- ')
        return callback();
    });
}

// Return an object with the start function
module.exports = {start}
现在您可以要求
mitm.js
,然后调用函数
start()


如果生成新进程,则可以通过
process.argv
传递参数。若要从当前流程调用模块,只需从一个模块导出默认函数,从另一个模块导出require,并使用参数调用它即可。换句话说,不要在模块文件的根目录中执行任何操作。只需将其包装在默认函数中并返回它。我如何在main.js中调用它?@Devhercule它包含在答案的底部,refresh。您提供
1111
作为端口,然后使用
8080
。这是故意的吗?@evolutionxbox我只是提供提问者在问题中提供的任何数据。@peteb Perfect,它对我有用,这正是我需要的:)谢谢
var mitm = require('./mitm')
mitm.start('http://proxy')