【问题标题】:Execute Query on Node.js Using Express and Form Input Submit使用 Express 和表单输入提交在 Node.js 上执行查询
【发布时间】:2020-03-22 05:51:48
【问题描述】:

如果之前有人问过这个问题,我深表歉意,如果有人问过,请按那个方向发给我。

我有一个使用 express 的 node.js 应用程序。我想在客户端单击一个按钮(表单输入提交)并让它在服务器端运行查询。我不是在寻找要发布或放置的查询,我希望它执行生成 csv 文件的 Neo4j 查询。查询不是问题,查询有效,问题是在客户端单击按钮(表单输入提交)以在服务器端运行查询。这是我尝试过但不起作用的方法...

index.ejs

<form method="post" action="/barrelsankeycsv">
    <input class="button" type="submit" value="RunQueryGenCSV">
</form>

...

server.js

app.post('/barrelsankeycsv', async (req, res) => {
  console.log(req.body);
  try {
    const result = await session.run('run neo4j query that generates csv file');
    if (result) {
      res.redirect('/');
      session.close();
    }
  } catch (e) {
    console.log("Something went wrong", e);
  };
});

我做错了什么?我也尝试过 app.all 但这也不起作用。如果有更好的方法来解决这个问题,我会全力以赴。

非常感谢您的帮助!

【问题讨论】:

  • 你能显示服务器控制台日志吗?
  • 您的意思是显示记录的任何错误?如果是这样,它不会记录任何要显示的错误。

标签: javascript node.js express input


【解决方案1】:
  1. 使用 cURL 或 Postman 向 express 服务器发送 POST 请求。如果可行,则问题出在前端。不过我觉得index.ejs我看到的没有问题。

  2. 在路由前添加如下代码:

app.use(express.urlencoded({ extended: true }))

【讨论】:

  • 感谢@bravemaster,我已成功从我的应用程序的其他部分(index.ejs 到 server.js)发送 POST GET PUT DELETE,并按照您的建议添加了 ...express.urlencoded...,但它仍然存在不工作。
  • 再次感谢@bravemaster,最后是我的错误。我将上面看到的
    代码嵌套在另一个
    中,并且禁止任何操作。因此,最后我将您的评论标记为“有用”,因为您确认我的代码似乎没有任何问题。
  • @Redlink 谢谢。乐于助人:)
猜你喜欢
  • 2018-10-08
  • 2014-04-04
  • 1970-01-01
  • 2018-04-06
  • 2019-02-07
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多