node.js - nodejs用户注册的信息在数据库里面显示不出来
高洛峰
高洛峰 2017-04-17 16:38:05
0
3
974

学node没多久,准备用node做个注册的功能, 但是注册页面的信息提交不到数据库,数据库用的mongodb,

注册页面

<p class="col-sm-8 col-sm-offset-1 main pull-left">
    <form class="form-horizontal" 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" class="form-control" id="inputName" 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" class="form-control" id="inputPassword3" 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" class="form-control" 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" class="form-control" id="inputEmail" 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);

填完注册的信息后,成功的跳到了登录页面,但是这个时候数据库确实这样的

尝试了四次全是这样,这是怎么回事

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(3)
PHPzhong

去掉註冊表單中enctype="multipart/form-data"

阿神

我似乎看見了問題.
首先,

  // 存入数据库
  User.create({
    userName: name,
    usePwd: pwd,
    userEmail: email
  },(err) => {
    if (err) next (err);
    res.redirect('/signin');
  })

用的屬性名稱是 userName, usePwd,useEmail,
但是在 schema 定義中卻變成了 name, pwd, email

迷茫

樓主程式碼沒有完全貼全,從現有的程式碼裡猜測,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');
  })
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板