nodejs app从post接收数据并渲染为html

时间:2017-06-08 17:52:55

标签: javascript node.js curl

我刚刚开始使用node.js,我不太了解一些事情。所以请不要吝啬。我试图在没有太多结果的情况下搜索网页。

我希望一个网页继续等待帖子,然后呈现收到的数据。 到目前为止,我有以下app.js

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Base.Widget.AppCompat.Spinner.Underlined" parent="android:Widget.Material.Spinner.Underlined"/>
</resources>

var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded app.set('view engine', 'pug'); app.get('/', function (req, res) { res.render('index', {title: 'GET test',message : 'GET test'}); }); var data = ""; app.post("/",function(req, res) { console.log(req.method); console.log(req.headers); console.log(req.url); data=req.body console.log(data); res.render('index', {title: 'POST test',message : 'POST test'}); }); app.listen(8081, function () { console.log('Example app listening on port 8081!'); }); 我有

views/index.pug

每当我触发 html head title = title body h1 = message 时 我可以看到终端内收到的帖子,但我不能强调如何在页面中呈现这些数据。

2 个答案:

答案 0 :(得分:0)

您需要在POST执行时发送数据响应,例如:

#pragma push_macro("size", "key", "name")
    // define them all
#pragma pop_macro("size", "key", "name")

然后,在你的Javascript调用;你可以通过以下方式捕获POST响应并呈现你想要的内容:

 res.status(201).send("POST executed successufully");

答案 1 :(得分:0)

看起来好像你没有将数据传递给res.render方法。

console.log(data);
res.render('index', {title: 'POST test',message : 'POST test', postData: data});

html
 head
  title = title
 body
  h1 = message
  span = postData.field

^这是假设&#34;字段&#34;在帖子中存在,实际上你想以更加动态的方式做到这一点,并确保它存在。