我试图创建一个服务器端的电子为了保持投入。
这是我的脚本,我得到的输入,并将其发送到数据库;
$("#confirm").click(function () {
$.post("/addcustomerpost",
{
opcode: document.querySelector('#opcode').value,
cusname: document.querySelector('#cusname').value,
},
function (data, status) {
if(data[0].code_received == "" || data[0].cusname_received == "") {
$(".alert").remove();
var errorMessage = $('<div class="alert alert-danger text-center" role="alert" style="font-size: 25px;">CANNOT BE EMPTY!</div>');
errorMessage.css({
position: "fixed",
top: 10,
right: 690,
width: "20%",
"z-index": 9999,
});
$("body").append(errorMessage);
setTimeout(function() {
errorMessage.remove();
}, 3000);
}
else {
if(status === "success") alert("INFORMATION SAVED!");
else alert("ERROR OCCURRED!");
}
});
});
它需要访问appExpress.post(“/addcustomerpost”,...),这里是main.js ;
// main.js
const { app, BrowserWindow } = require('electron');
const express = require('express');
const appExpress = express();
appExpress.set('view engine', 'ejs');
const port = 5500;
process.env.PWD = process.cwd();
appExpress.use(express.static(process.env.PWD + '/images'));
appExpress.use(express.static('/'));
appExpress.use(express.urlencoded({extended:true}));
const path = require('path');
appExpress.post("/addcustomerpost",(req,res) => {
if(req.body.opcode == "" || req.body.cusname == "") {
console.log("not valid customer");
res.json([{
code_received: req.body.opcode,
cusname_received: req.body.cusname,
}]);
}
else {
res.json([{ // Just an response
code_received: req.body.opcode,
cusname_received: req.body.cusname,
}]);
console.log("test_log"); //db operations will be here
}
});
let mainWindow;
app.on('ready', () => {
// start express server
const server = appExpress.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
mainWindow = new BrowserWindow({
width: 1920,
height: 1080,
webPreferences: {
nodeIntegration: true
}
});
mainWindow.loadFile('entry.html');
mainWindow.on('closed', () => {
mainWindow = null;
});
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
然而,当我提交输入时,它说;无法加载资源:net::ERR_FILE_NOT_FOUND /C:/addcustomerpost:1
你能帮帮我吗?
我的意思是,我可以在我的网络应用程序nodejs中做到这一点,但不能在电子版中管理它。
1条答案
按热度按时间rjzwgtxy1#
您正在请求
/addcustomerpost
,这是根URL的相对路径。由于电子应用程序是桌面应用程序,因此它们没有定义的根路径来使用Web应用程序中的相对路径。由于这个原因,您的应用程序正在尝试访问路径
C:/addcustomerpost
,这是文件系统路径。要解决这个问题,您需要在URL中指定协议和域,格式如下:
http://domain:port/addcustomerpost
。如果您在本地环境中工作,则URL将为http://localhost:port/addcustomerpost