TypeError:无法读取属性' name'未定义的快递js +玉模板

时间:2015-09-23 11:47:49

标签: node.js express web-applications server pug

我正在尝试使用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'未定义"


如果有人对此有所了解,那就太棒了。!!
提前谢谢..

4 个答案:

答案 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());