使用Electron打开Express应用程序(Nodejs)



我有一个用Express/Nodejs编写的应用程序用于后端,angularjs(我知道是旧的(用于前端。我正在尝试在Electron窗口中打开此应用程序。我在搜索后发现了一些东西,这就是我想到的。

main.js

const {BrowserWindow} = require('electron')
const path = require('path')
require('./server/app.js')
function start() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
mainWindow.loadURL(`http://127.0.0.1:8009/`);
mainWindow.focus();
};
app.on('ready', start)

/server/app.js

var open = require('open');
var path = require('path')
var express = require('express');
var bodyParser = require('body-parser');
var api = require('./routes/api')();
var fs = require('fs')


var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/../client'));


app.get('/api/getPoints/:instance', api.getPoints);
app.get('/api/startDataCollection/', api.startDataCollection);
app.get('/api/getEllipses/:instance', api.getEllipses);
app.get('/api/getOutliers/:instance', api.getOutliers);
app.get('/api/getLabels/:instance', api.getLabels);
app.get('/api/getDescription/', api.getDescription);
app.post('/api/postDescription/', api.postDescription);
app.post('/api/postLabel/', api.postLabel);
app.listen(8009, function () {
console.log('Server listening at http://127.0.0.1:8009');
});

我通过需要app.js模块来启动服务器。该应用程序运行正常,我可以在8009端口访问它,但电子窗口不会弹出。

app不是已声明的变量。你可以试试:

setTimeout(() => start(), 3000);

这将在节点启动3秒钟后手动启动电子窗口。如果有效,请从所需的模块中导出app

module.exports.app = app;

最新更新