以下是app.use部分
// redis/session store
app.use(express.cookieParser());
app.use(express.session({
store: new redisStore({ host: 'localhost',
port: 6379,
db: 2
}),
secret: SID
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.urlencoded());
app.use(express.methodOverride());
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
这是路由
var saveProfile = require('./routes/saveProfile');
.
.
.
// form handling
app.post('/saveProfile',saveProfile.save);
,这是表单
的处理程序exports.save = function(req,res) {
try {
var i = 0;
console.log(req.body.displayName);
}
catch(e) {
console.log(e.message);
}
};
最后生成实际形式的玉代码
form(method='POST',action='/saveProfile')
div(class='topBannerHeading')
span.
Profile
div
input.formButton(type='submit',text='Save',value='Save')
div(class='formHolder')
h1.
Your Cloud Services
a(href='/googleRequestAuthorization')
img.selectedService(src='images/Google-48x48.png',alt='Authorize Google')
h1.
Personal
span
div.
Name:
input#displayName(type='text',value=profile.displayName,style='width:300px')
div.
Address:
input#AddressLine1(type='text',style='width:300px')
div.
input#AddressLine2(type='text',style='width:300px')
div.
Town:
input#AddressTown(type='text',style='width:200px')
div.
County:
input#AddressCounty(type='text',style='width:200px')
div.
Post/Zip code
input#Postcode(type='text',style='width:200px')
div(style='margin-top:40px').
Telephone
input#Telephone(type='text',style='width:200px')
div.
Mobile:
input#Mobile(type='text',style='width:200px')
div.
Fax No:
input#FaxNo(type='text',style='width:200px')
div.
Email:
input#EmailAddress(type='text',style='width:300px',value=profile.email)
div.
Web:
input#WebAddress(type='text',style='width:300px')
input#id(type='text',style='visibility:hidden')
查看请求对象的标题
内容类型是 应用程序/ x-WWW窗体-urlencoded
并且内容长度返回为0(零)
我尝试添加BodyParser()
但仍然调用处理程序req.body.displayName
未定义
任何想法我做错了什么,并提前感谢。
答案 0 :(得分:0)
使用名称而不是ID。所以玉文件说的地方
input#displayName(type='text',value=profile.displayName,style='width:300px')
并将其替换为
input#displayName(type='text',name='displayName',value=profile.displayName,style='width:300px')
在另一个可以在这里找到的问题中回答了这个问题; nodejs, express and jade: problems with inserts from form to database