【问题标题】:Opening an Express App (Nodejs) with Electron用 Electron 打开一个 Express 应用程序(Nodejs)
【发布时间】: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 访问它,但电子窗口没有弹出。

【问题讨论】:

    标签: node.js angularjs express electron


    【解决方案1】:

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

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

    这将在 Node 启动 3 秒后手动启动电子窗口。 如果可行,请从您需要的模块中导出 app

    module.exports.app = app;
    

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多