node.js - 用 Electron 打开一个 Express 应用程序(Nodejs)
问题描述
我有一个用 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 访问它,但电子窗口没有弹出。
解决方案
app
不是声明的变量。你可以试试:
setTimeout(() => start(), 3000);
这将在 Node 启动 3 秒后手动启动电子窗口。如果可行,app
请从您需要的模块中导出。
module.exports.app = app;
推荐阅读
- arraylist - 复制文件后找不到路径
- python - 安装时出现“importError: cannot import name 'main'”错误
- python - Python:按间隔对csv文件进行排序
- vb.net - 使用 ClosedXML 在现有 Excel 工作表中嵌入对象
- jquery - 无法在 jQuery 中将数组元素添加到表格行
- python - 使用 python skpy 连接到Skype
- c# - 如何在动态 SQL 查询中使用 dataview 作为 SQL 表的替代方法?
- reactjs - 无状态组件为浅快照测试返回“null”
- javascript - Javascript视差在Mac上滞后
- python - 获取每个类别的颜色