将html表单发送到node.js,处理数据并将该数据提供给另一个页面

时间:2018-05-09 16:29:29

标签: javascript html node.js

我有一个带有一些复选框的html表单,我希望node.js服务器使用存储在.json文件中的信息处理客户端输入,并将结果发送回客户端到另一个页面。

它根据可用的成分(在表单中检查)检查是否可以制作配方(许多存储在.json文件中)。

到目前为止,我能够搜索并编程这个网站,以便我可以发送表单,处理它(下面的代码很简短)并得到结果,但我不知道是什么与它有关,它只是在页面中显示为纯.json(这是我发送的,这是正常的。)

html部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Recipes</title>
</head>
<body class="container">
    <main>
        <form action="/search_result" method="post">
            <input type="checkbox" name="beef_roast"> Beef
            <input type="checkbox" name="beef_roast"> Pork
            <input type="checkbox" name="beef_roast"> Fish
            <button type="submit" class="btn btn-default">Search recipe</button>
        </form>
    </main>
</body>
</html>

node.js部分

var express = require('express');
var app = express();
const bodyParser = require("body-parser");
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

app.post('/search_result', function(req, res) {
    res.json({"recipe name":"good recipe","recipe link":"www.goodrecipe.com"});
});

app.listen(3000);

我怀疑在/ search_result页面上必须有一些东西等待我的设置方式,我只是不知道它是什么以及接下来应该使用哪些工具... < / p>

1 个答案:

答案 0 :(得分:0)

您需要快速提供一个页面来解析该HTML。现在你只是告诉它发回一个json对象。

res.render('recipe.html');

您可能希望查看AngularJS等选项或使用JQuery发送请求,并在收到回复时进行前端更改。