用 Electron 打开一个 Express 应用程序(Nodejs)
Posted
技术标签:
【中文标题】用 Electron 打开一个 Express 应用程序(Nodejs)【英文标题】:Opening an Express App (Nodejs) with Electron 【发布时间】:2020-08-16 08:32:05 【问题描述】:我有一个用 Express/Nodejs 编写的用于后端的应用程序,以及 angularjs(我知道是旧的)用于前端的应用程序。我正在尝试在电子窗口中打开此应用程序。我在搜索后发现了一些东西,这就是我想出的。
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 访问它,但电子窗口没有弹出。
【问题讨论】:
【参考方案1】:app
不是已声明的变量。你可以试试:
setTimeout(() => start(), 3000);
这将在 Node 启动 3 秒后手动启动电子窗口。
如果可行,请从您需要的模块中导出 app
。
module.exports.app = app;
【讨论】:
以上是关于用 Electron 打开一个 Express 应用程序(Nodejs)的主要内容,如果未能解决你的问题,请参考以下文章
如何运行require(“express”);来自Electron App中的TypeScript角度组件
自动重新加载对 React 所做的更改,使用 Electron 的 Express Webpack