node.js - nodejs用户注册的信息在数据库里面显示不出来
高洛峰
高洛峰 2017-04-17 16:38:05
[Node.js讨论组]

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

注册页面

注册页面路由

// 注册页面
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)
PHPz

去掉注册表单中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');
  })
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号