在这个基本程序中,我想使用' body parser'来获取用户输入。然后通过把手将该输入输入索引页面。我已多次尝试但似乎无法实现它。车把和车身拆卸车也在一起,或者我应该使用不同的东西。
模板:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<header>
<h1>Bodyparser and Handlebars</h1>
</header>
<form method="post" action="/">
<input type="text" name="name1">
<input type="submit" value="Submit">
</form>
{{test}}
</body>
</html>
Node.js的
var express = require('express');
var app = express();
var handlebars = require('express-handlebars');
var path = require("path");
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.set('view engine', 'html');
app.engine('html', handlebars({
defaultLayout: 'base',
extname: '.html'
}));
app.use(express.static(path.join(__dirname, 'public'))); //public directory
app.get('/index', function(req, res) {
res.sendFile('index.html', { root: __dirname });
});
app.get('/', function (req, res) {
res.render('index', {
test: req.body.name1});
});
app.post('/', function(req, res){
console.log(req.body.name1);
});
app.listen(3000);
答案 0 :(得分:0)
您在/
的帖子应为:
app.post('/', function(req, res){
res.render('index', {
test: req.body.name1});
});
你已经完成了。
答案 1 :(得分:0)
身体解析器和把手可以完美地工作。 Body-parser允许您在路由器控制器内收集请求数据,而Handlebars是一个模板引擎,可以呈现变量和更多内容。
您需要将要显示的文本传递给POST路由器控制器。
<form action="/" method="post">
name1: <input type="text" name="name1"><br>
<input type="submit" value="Submit">
</form>
将该表格放在其他视图或任何您想要的地方
在控制器内部将请求参数传递给把手:
app.post('/', function(req, res){
res.render('index', {
test: req.body.name1});
});