我正在尝试将变量从客户端JavaScript文件发送到服务器端app.js文件。我知道您可以使用以下方法(使用Express)从诸如表单输入字段之类的值中获取值:
var express = require('express');
var app = express();
var path = require('path');
let cityResponse;
app.post('/city', function(req,res) {
cityResponse = {
user_name: req.body.userName
}
res.sendFile(path.join(__dirname, '/client/city/index.html'));
});
但是我不想直接从HTML中获取值,而是从HTML附加到的JavaScript文件中获取值。
除此之外,我目前正在使用Socket.io将数据从服务器发送到客户端,反之亦然,并使用window.onload
来让服务器知道页面何时准备就绪:>
index.js
window.onload = function() {
socket.emit('cityPageReady');
console.log("city page ready");
};
socket.on('cityPageInfo', function(cityResponse) {
console.log('city page info received');
console.log(cityResponse);
console.log(cityResponse.user_name);
userName = cityResponse.user_name;
document.getElementById("name").innerHTML = userName;
});
app.js
var city = io.of('/city').on('connection', (socket) => {
console.log('A user has connected!');
socket.on('cityPageReady', function() {
socket.emit('cityPageInfo', cityResponse);
console.log('city page ready recieved');
});
});
这行得通,但是很多人都说这是过大的杀伤力,或者像一个人所说的那样,“用锤子杀死蜜蜂”。理想情况下,我想使用最佳方法。我确实知道模板引擎可以实现这一目标,但是我不想为了能够将单个变量发送到服务器而重写所有HTML。
重申一下,我的问题是:
任何帮助将不胜感激。