如何为 NW.JS 本地桌面应用程序创建本地服务器连接?
Posted
技术标签:
【中文标题】如何为 NW.JS 本地桌面应用程序创建本地服务器连接?【英文标题】:How to create a local server connection for a NW.JS local desktop application? 【发布时间】:2021-05-21 23:30:52 【问题描述】:我是 Node.JS 和 NW.JS 的新手,这是我的第一个项目,一个桌面应用程序演示。我制作了一个基本表单,并且正在尝试执行本地应用程序,因此我想将我的 Web 服务器变成本地服务器连接,以将表单数据从我的应用程序发送到 mysql Workbench 中的数据库。此外,如果有人对简化此代码有任何建议,我们也欢迎。
*编辑
好的,显然我不需要服务器连接(app.js 和 router.js 都不需要)只需要 db.js 用于数据库连接,我现在要做的就是将我的 index.js 变成jQuery 代码。有人可以帮我吗?
另外,我是 *** 的新手。我必须更改标题吗?有什么改进这篇文章的建议吗?
表单提交代码 (index.js)exports.save 代码不会将表单数据插入数据库。
var enviar = document.querySelector('.enviar');
enviar.addEventListener('click',function()
var fecha = document.getElementById('fecha').value;
console.log(fecha);
if(!fecha)
alert("Error! Por favor, introdusca la fecha.");
else
const conexion = require('./db');
exports.save = (req, res)=>
var aleatorio = Math.random();
var alString = aleatorio.toString();
var alStringFix = alString.substr(2,3);
var idfecha = new Date();
var numfecha = [
idfecha.getMinutes(),
idfecha.getSeconds(),
idfecha.getMilliseconds()
];
var numero = numfecha.join("")+parseInt(alStringFix);
const tipo = req.body.tipo;
const fecha = req.body.fecha+':'+idfecha.getSeconds()+'.'+idfecha.getMilliseconds();
const comentario = req.body.comentario;
console.log(numero+" - "+tipo+' - '+fecha+' - '+comentario);
conexion.query('INSERT INTO cuentas_evento SET ?',
numero_evento: numero, tipo_evento: tipo, fecha_evento: fecha, comentario: comentario,
(error, resultados)=>
if(error)
throw error;
else
res.redirect('/');
);
alert("Formulario Enviado!");
location.reload();
return false;
);
MySQL 连接 (db.js)
const mysql = require('mysql');
const conexion = mysql.createConnection(
host: 'localhost',
database: 'test',
user: 'root',
password: 'mypassword'
);
conexion.connect(function(error)
if (error)
throw error;
else
console.log('Conexión Exitosa!');
);
module.exports = conexion;
*不需要服务器连接
路由器 (router.js)
const express = require('express');
const router = express.Router();
const conexion = require('./db');
router.get('/', (req,res)=>
res.render('./index');
)
const crud = require('./crud');
router.post('/', crud.save);
module.exports = router;
APP (app.js)
const express = require('express');
const app = express();
const path = require('path');
app.use(express.urlencoded(extended:true));
app.use(express.json());
app.get('/', function(req, res)
res.sendFile(path.join(__dirname, 'index.html'));
);
app.use(express.static('public'));
app.use('/', require('./router'));
app.listen(3000, ()=>
console.log('Servidor corriendo en http://localhost:3000');
);
【问题讨论】:
【参考方案1】:我不确定您的代码是否存在问题。但如果问题出在您的设置上,您可以与这个简单的示例项目进行比较:
https://github.com/nwutils/nw-local-server-example【讨论】:
我看了看,他们像我一样建立了服务器连接,他们在 NW.js 中使用 node-remote 远程运行它。他们将 package.json 中的“main”设置为 localhost:3000,并且 Express 正在返回 index.html,我已经这样做了。我可能没有正确详细说明,我想将该远程服务器转换为本地服务器,而无需在“main”中设置localhost:3000。 我编辑了我的帖子,我实际上不需要服务器连接,只需要数据库通信。 我希望它能够像使用 Node.js 连接到任何数据库一样工作。这是特定于 NW.js (github.com/nwjs/nw.js/wiki/Save-persistent-data-in-app) 的数据库内容的页面,但我认为在这里使用任何节点指南都可能有效。以上是关于如何为 NW.JS 本地桌面应用程序创建本地服务器连接?的主要内容,如果未能解决你的问题,请参考以下文章