node.js - nodejs用户注册的信息在数据库里面显示不出来
问题描述
学node没多久,准备用node做个注册的功能, 但是注册页面的信息提交不到数据库,数据库用的mongodb,
注册页面
<p class='col-sm-8 col-sm-offset-1 main pull-left'> <form action='/signup' method='post' enctype='multipart/form-data'><p class='form-group'> <label for='inputName' class='col-sm-2 control-label'>用户名</label> <p class='col-sm-4'><input type='text' name='username'> </p></p><p class='form-group'> <label for='inputPassword3' class='col-sm-2 control-label'>密码</label> <p class='col-sm-4'><input type='password' name='password'> </p></p><p class='form-group'> <label for='' class='col-sm-2 control-label'>再次输入密码</label> <p class='col-sm-4'><input type='password' id='' name='re_password'> </p></p><p class='form-group'> <label for='inputEmail' class='col-sm-2 control-label'>邮箱</label> <p class='col-sm-4'><input type='email' name='email'> </p></p><p class='form-group'> <p class='col-sm-offset-2 col-sm-4'><button type='submit' class='btn btn-default'>注册</butto> </p></p> </form></p>
注册页面路由
// 注册页面router.get(’/signup’, function(req, res, next){ res.render(’sign/signup’);});router.post(’/signup’, function(req, res, next){ // 获取数据 var name = req.body.username; var pwd = req.body.password; var re_pwd = req.body.re_password; var email = req.body.email; // 存入数据库 User.create({ userName: name, usePwd: pwd, userEmail: email },(err) => { if (err) next (err); res.redirect(’/signin’); })});
数据模型
const mongoose = require(‘mongoose’);mongoose.connect(‘mongodb://localhost/cnode’);var schema = new mongoose.Schema({name: String,pwd: Number,email: String});module.exports = mongoose.model(‘User’, schema);
填完注册的信息后,成功的跳到了登录页面,但是这个时候数据库确实这样的
尝试了四次全是这样,这是怎么回事
问题解答
回答1:去掉注册表单中enctype='multipart/form-data'
回答2:我似乎看见了问题.首先,
// 存入数据库 User.create({ userName: name, usePwd: pwd, userEmail: email },(err) => { if (err) next (err); res.redirect(’/signin’); })
用的属性名是 userName, usePwd,useEmail,但是在 schema 定义中却变成了 name, pwd, email
回答3:楼主代码没有完全贴全,从现有的代码里猜测,schema 定义时的字段名,跟创建schema实例时传入的object的字段名不一致导致?
// 存入数据库 User.create({ userName: name, usePwd: pwd, userEmail: email },(err) => { if (err) next (err); res.redirect(’/signin’); })
User.create({ userName: name, usePwd: pwd, userEmail: email },(err) => { if (err) next (err); res.redirect(’/signin’); })
相关文章:
1. python 多进程 或者 多线程下如何高效的同步数据?2. windows-7 - win7下使用cmder,如何设置vim的tab为4个空格?3. web - nginx location 搜索算法问题!?4. media-query - 请教为何CSS3媒体查询语法不能生效?5. thinkPHP5中获取数据库数据后默认选中下拉框的值,传递到后台消失不见。有图有代码,希望有人帮忙6. python - 怎么进行服务器性能分析7. javascript - 关于js高级程序中的问题8. MySQL的SELECT...FOR UPDATE究竟起什么作用9. javascript - nodejs使用mongoose连接数据库,使用post提交表单在后台,后台处理后调用res.redirect()跳转界面无效?10. mysql - 要取出数据库中按某字段排序后的前10,20,30条数据要怎么做?

网公网安备