Javascript 使用单击事件更改节点app.js全局变量
假设我在app.js中创建了一个变量,如下所示:app.locals.language=“EN”。现在,我们有一个用户使用我的网站,点击下拉菜单,将页面语言更改为西班牙语。当点击事件被调用时,我如何更改我的app.locals.language=“ES”Javascript 使用单击事件更改节点app.js全局变量,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,假设我在app.js中创建了一个变量,如下所示:app.locals.language=“EN”。现在,我们有一个用户使用我的网站,点击下拉菜单,将页面语言更改为西班牙语。当点击事件被调用时,我如何更改我的app.locals.language=“ES” 我在应用程序中使用的所有语言都是html、css、javascript、jquery、node.js和express。提前感谢NodeJS是服务器端代码,您的点击将来自客户端。因此,您需要某种方式从客户端与服务器通信。可以这样做的一种方法是在e
我在应用程序中使用的所有语言都是html、css、javascript、jquery、node.js和express。提前感谢NodeJS是服务器端代码,您的点击将来自客户端。因此,您需要某种方式从客户端与服务器通信。可以这样做的一种方法是在express中创建一条路线,当发送到时,该路线会更改环境变量。它看起来像这样:
app.post('/change', (req, res) => {
const newVar = req.body.global;
app.locals.language = newVar;
res.json({
success: true
});
});
<button onClick="changeGlobal('EN')">Change Global To EN</button>
<button onClick="changeGlobal('ES')">Change Global To ES</button>
function changeGlobal(language) {
fetch('/change', {
method: 'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({global: language})
})
.then(res=>res.json())
.then(res => console.log(res));
}
因此,当您使用名为'global'
的变量将POST
发送到路由时,它会将您的语言更改为发送的任何内容。从客户端,您可以执行以下操作:
app.post('/change', (req, res) => {
const newVar = req.body.global;
app.locals.language = newVar;
res.json({
success: true
});
});
<button onClick="changeGlobal('EN')">Change Global To EN</button>
<button onClick="changeGlobal('ES')">Change Global To ES</button>
function changeGlobal(language) {
fetch('/change', {
method: 'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({global: language})
})
.then(res=>res.json())
.then(res => console.log(res));
}
将全局更改为EN
将全局更改为ES
函数更改全局(语言){
获取(“/change”{
方法:“POST”,
标题:{'Content-Type':'application/json'},
正文:JSON.stringify({global:language})
})
.then(res=>res.json())
.then(res=>console.log(res));
}
对于为客户端提供内容的每个api,您应该看到一个对象为
{success:true}
的注销,传递语言参数。。。