I'm trying to make a webapplication using electron (for the website and desktop application) and express (for sessions etc.)
Now, I got this as my app.js:
const express = require('express');
const {app, BrowserWindow} = require('electron');
exp = express();
exp.set('views', __dirname + '/views/');
exp.use(express.static(process.cwd() + '/views'));
exp.get('/', function(req, res) {
res.render('index', {});
});
function onAppReady()
{
mainWindow = new BrowserWindow({
width: 1080,
height: 720,
autoHideMenuBar: true,
useContentSize: true,
resizable: false
});
mainWindow.loadURL('http://localhost:5000/');
mainWindow.focus();
mainWindow.webContents.openDevTools();
}
app.on('ready', onAppReady);
Now, there's a few problems:
If I use
node app.js
, I get this error: Line:app.on('ready', onAppReady);
TypeError: Cannot read property 'on' of undefined at Object. (/home/josh/chat_program/client/app.js:26:4) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.runMain (module.js:605:10) at run (bootstrap_node.js:420:7) at startup (bootstrap_node.js:139:9) at bootstrap_node.js:535:3
If I use
electron .
, the application starts, but I don't get either a request or a webpage. All I get is basic HTML without anything (only doctype HTML HEAD and BODY).
I searched for a long time but couldn't find anything.
Two things.
First I'd clarify your pathing setup and usage, more like this:
Second, I would wrap all my express code into a single file that is a self-executing function, so it runs once when you require it. Such as my express file which I call my
app.js
file:Then in my main file (which I call
main.js
not app.js, in my case), I instantiate the app and the express server as follows:Note that I am using this with success on Windows platform, so small tweaks may be needed for any platform specific items listed in this example.