将数据从node.js服务器显示到html页面

时间:2017-06-26 12:00:46

标签: javascript html node.js

我正在尝试将表单数据显示到另一个html页面。这是我的server.js



var express = require('express');
var bodyParser = require('body-parser');
var app     = express();
var path=require('path');

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


app.use(express.static(path.join(__dirname, '/')));
app.post('/myaction.html', function(req, res) {
  res.send('You sent the name "' + req.body.name + '".');
});

app.listen(8080, function() {
  console.log('Server running at http://127.0.0.1:8080/');
});



 这是我的' index.html'



<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo Form</title>
</head>
<body>
<div id="contact">
    <h1>Enter the values</h1>
    <form action="/myaction.html" method="post">
        <fieldset>
            <label for="name">Name:</label>
            <input type="text" id="name" name="name" placeholder="Enter your full name" />

            <label for="email">Email:</label>
            <input type="email" id="email" placeholder="Enter your email address" />

            <label for="message">Message:</label>
            <textarea id="message" placeholder="What's on your mind?"></textarea>
            
            <input type="submit" value="Send message" />

        </fieldset>
    </form>
</div>
</body>
</html>
&#13;
&#13;
&#13;

现在,它工作正常,名称反映在myaction.html页面中。但是我希望将“myaction.html”&#39;页面有点让它看起来更漂亮。有没有办法在页面中添加更多的html标签和文本,或者在现有页面中显示表单数据?

1 个答案:

答案 0 :(得分:0)

使用模板引擎。一个好的是EJS。首先,您必须在server.js中使用npm install ejs然后使用app.set('view engine', 'ejs');。之后,您将能够在名为views的项目中创建一个新文件夹,您可以在其中创建index.ejs和其他视图文件。在server.js中,您可以使用res.render('index.ejs', {data: aJavascriptVariable, data1: moreVars});。最后要在.ejs文件中使用此变量,您可以使用&lt;%= data%&gt;或&lt;%= data1%&gt;。当然,html可以写在.ejs文件中。