您的位置:首页技术文章
文章详情页

node.js - nodejs用户注册的信息在数据库里面显示不出来

【字号: 日期:2024-07-19 09:56:13浏览:71作者:猪猪

问题描述

学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);

填完注册的信息后,成功的跳到了登录页面,但是这个时候数据库确实这样的node.js - nodejs用户注册的信息在数据库里面显示不出来

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

问题解答

回答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’); })

相关文章: