Javascript 在Node.js Express中将变量从客户端传递到后端

Javascript 在Node.js Express中将变量从客户端传递到后端,javascript,json,node.js,express,webstorm,Javascript,Json,Node.js,Express,Webstorm,我有一个Node.js Express项目,其中的文件定向如下: 我想将一个变量从标记的index.js传递到app.js,这样我就可以在最后将该变量写入data.json 我还是Node.js新手,对客户机/服务器理论仍然感到困惑。如果有一种方法可以将数据直接从index.js写入data.json或任何其他json文件,那么会容易得多,但我认为根据前面的回答,这是不可能的。如果我错了,请纠正我 更新: 使用Ajax解决了问题,如回答中所述: 使用$.post'/email',{address

我有一个Node.js Express项目,其中的文件定向如下:

我想将一个变量从标记的index.js传递到app.js,这样我就可以在最后将该变量写入data.json

我还是Node.js新手,对客户机/服务器理论仍然感到困惑。如果有一种方法可以将数据直接从index.js写入data.json或任何其他json文件,那么会容易得多,但我认为根据前面的回答,这是不可能的。如果我错了,请纠正我

更新:

使用Ajax解决了问题,如回答中所述:

使用$.post'/email',{address:'xxx@example.com' }; 在index.js中发送数据,以及

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/email', (req, res) => {
  // you have address available in req.body:
  console.log(req.body.address);
  // always send a response:
  res.json({ ok: true });
});

app.use(express.static(dir));

app.listen(4443, () => console.log('Listening on http://localhost:4443/'));

在app.js中接收数据。

您的index.js应该有一个返回变量值的函数,如下所示:

# index.js
exports.default = () => {
  return 'my data';
}

# app.js
const dataGetter = require('./public/javascripts/index.js');
const myData = dataGetter();
或者,如果您的数据是静态的,您可以随时需要index.js


在node.js中,您应该在函数中声明变量,函数是node.js生态系统的本质。

`根据前面的回答,我认为这是不可能的。`这当然是可能的。只需使用fs.writeFile。如果不发布一些代码,就很难理解您想做什么。@JonasW。当我在index.js中尝试require'fs'时,我得到了require is not defined消息,当我查找它时,提到我们不能将require用于客户端代码,我假设它是index.js部分。然后,您必须使用Ajax将数据从客户端传递到客户端backend@JonasW. 我试试看,谢谢!