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. 代码如下,java用BigDecimal四舍五入怎么还有问题呀?哪种方式是完全没有问题的?2. angular.js - 请教angularjs里html和js通信的问题3. node.js - 怎么在初始化的时候使得一个子组件不加载?4. javascript - 关于向java后台上传base64位字符串的图片数据,求助5. android自带时钟应用的这个效果是怎么做的6. mysql根据某个字段已存在的值排序7. 求解决方法:Parse error: syntax error, unexpected8. 新人做网站求帮助9. Help!求帮助10. 请问“由于 Cookie “PHPSESSID”的“SameSite”属性设置为“None”,但缺少“Secure”属性,此 Cookie 未来将被拒绝。”请问出现这个问题怎么办?