使用“调用javascript文件”;启动功能“;及;参数“;
我正在开发一个简单的eleton应用程序 我有两个javascript文件(NodeJs)。第一个文件正在调用第二个文件。。我的代码正在运行 我想修改这一行:使用“调用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'
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')