Javascript 使用单击事件更改节点app.js全局变量

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

假设我在app.js中创建了一个变量,如下所示:app.locals.language=“EN”。现在,我们有一个用户使用我的网站,点击下拉菜单,将页面语言更改为西班牙语。当点击事件被调用时,我如何更改我的app.locals.language=“ES”


我在应用程序中使用的所有语言都是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}

的注销,传递语言参数。。。