【发布时间】:2018-07-26 22:08:24
【问题描述】:
我已经练习使用 Electron 几个月了,我想知道如何将我不久前制作的 Node.js 网页项目转换为 Electron 应用程序。在我的 Node.js 网页中,我使用了类似
的函数app.get('/' function(req, res){
res.render('loginpage');
}
app.post('/loginCredentials', function(req, res){
/*Make sure req.body.username and req.body.password are valid*/
res.render('home');
}
同样在我的 Node.js 应用程序中,每当用户想要查看数据库结果时,我都会在 Node.js 网页中查询数据库,并在呈现变量时将其发送到网页。
但是在 Electron 中,我不知道如何处理这样的请求。如果我想做一个 Electron 应用程序,我是否必须在网页文件中自己处理所有这些,或者 Electron 是否有一些 app.get/ app.post 方法?
或者,有没有办法让我的 Node.js 网页像 Electron 应用程序一样加载到浏览器窗口中?
提前谢谢你
更新 1; ipcMain模块功能:
在我的电子 main.js 文件中,我有以下代码:
const {ipcMain} = require('electron')
ipcMain.on('hello', (event, arg) => {
console.log(arg)
event.returnValue = 'pong'
})
在我的网页中,位于“./views”目录中,我有以下代码:(它是一个 pug 文件,它可以正确呈现)
input(type ='submit', value ='Submit', onclick = "handleClick()")
...
script.
const {ipcRenderer} = require('electron')
function handleClick(){
var x = ipcRenderer.sendSync('hello', 'ping')
console.log(x)
}
在进行以下更改之前,我一直收到错误消息(显示在问题的底部)。我改变了:
const ipcMain = require('electron')
到
const {ipcMain} = require('electron')
显然,要正确导入模块,括号必须围绕模块。
存在但已修复的错误:
Uncaught TypeError: ipcRenderer.sendSync is not a function
at handleClick (loginpage.pug:64)
at HTMLInputElement.onclick
ipcMain 是 Electron 中一个有用的方面,它模仿 Node.js 中的 app.get/app.post
【问题讨论】:
标签: javascript jquery node.js get electron