我正在尝试使用post请求执行表单提交的快速示例程序。 app.js和index.js的代码如下。
app.js
var http=require('http');
var express=require('express');
var app=express()
app.set('view engine','jade');
app.set('views','./views');
app.get('/',function(req,res){
res.render('index');
});
app.post('/signup', function(req, res) {
var name = req.body.name;
var email = req.body.email;
console.log('Name: ' + name);
console.log('Email: ' + email);
});
app.get('/search-result',function(req,res){
var name=req.query.d_name;
console.log("name is"+name)
})
http.createServer(app).listen(3000,function(){
console.log("started");
})

index.jade
html
head
title #{title}
body
h1 #{title}
p Enter the name and email id .
form(action='/search-result',method='get')
label Name
input(type='text',name='d_name')
input(type='submit',value='Search')
form(action='/signup',method='post')
div
label Name
input(type='text',name='name')
div
label Email
input(type='text',name='email')
div
input(type='submit')

在上面的方案中,我已成功检索到' d_name'中的值。单击搜索按钮,使用get方法(/搜索结果路径)使用文本字段并使用console.log。但是,当我尝试使用post方法(/注册路由)时,单击提交按钮以从名称'中检索值。和'电子邮件'文本字段我收到以下错误。
" TypeError:无法读取属性' name'未定义"
如果有人对此有所了解,那就太棒了。!!
提前谢谢..
答案 0 :(得分:2)
How to fix TypeError: Cannot read property 'name' from Express Nodemailer
app.use(express.bodyParser());
该行可让您阅读帖子数据表格
答案 1 :(得分:0)
我完全错过了必须包含在帖子请求中的正文解析器部分。尽管它已被弃用,但它还是以某种方式使其在link
的帮助下工作答案 2 :(得分:0)
app.use(express.bodyParser());
app.use(express.josn());
答案 3 :(得分:0)
简单使用此功能是因为该功能在express中内置了中间件功能
app.use(express.json());