【问题标题】:Passing variables from client side to backend in Node.js Express在 Node.js Express 中将变量从客户端传递到后端
【发布时间】:2018-11-02 15:20:22
【问题描述】:

我有一个 Node.js Express 项目,文件的方向如下(WebStorm IDE):

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

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


更新:

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

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

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 中接收数据。

【问题讨论】:

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

标签: javascript json node.js express webstorm


【解决方案1】:

你的 index.js 应该有一个返回变量值的函数,像这样:

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

# app.js
const dataGetter = require('./public/javascripts/index.js');
const myData = dataGetter();

或者,如果您的数据是静态的,您可以在每次需要时只 require() index.js。

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

【讨论】:

    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多