【问题标题】:change node app.js global variable with click event使用点击事件更改节点 app.js 全局变量
【发布时间】:2017-07-16 11:12:54
【问题描述】:

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

我在我的应用程序中使用的所有语言都是 html、css、javascript、jquery、node.js 和 express。提前谢谢你

【问题讨论】:

  • 对于为您的客户端提供内容的每个 api,传递语言参数...

标签: javascript jquery node.js express


【解决方案1】:

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

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} 对象的注销

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2019-06-01
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多