使用click事件更改节点app.js全局变量

时间:2017-07-16 02:54:01

标签: javascript jquery node.js express

假设我在我的app.js中创建了一个变量:app.locals.language =" EN"。现在,我们有用户使用我的网站点击下拉菜单将页面语言更改为,例如,西班牙语。我怎样才能改变我的app.locals.language =" ES"什么时候调用click事件??

我在我的应用程序中使用的所有语言都是html,css,javascript,jquery,node.js&表达。提前谢谢你

1 个答案:

答案 0 :(得分:0)

NodeJS是服务器端代码,您的点击将来自客户端。因此,您需要某种方式从客户端与服务器通信。你可以做的一种方法是在express中创建一个路由,当发布到时,改变环境变量。它看起来像这样:

app.post('/change', (req, res) => {
  const newVar = req.body.global;
  app.locals.language = newVar;
  res.json({
    success: true
  });
});

因此当您POST到具有名为'global'的变量的路线时,它会将您的语言更改为发送的内容。从客户端,你会做这样的事情:

<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));
}

您应该看到一个对象为{success: true}

的注销