新手求助,express路由如何分离数据库操作
目前想要分离路由里的 操作数据库的内容想了一下午,也没找到解决的方法!希望各路大神给点思路在此感激不尽
项目路径截图
ccontroller/rej.js代码:
module.exports = function Reg(req,res,next){
var crypto = require('crypto');
var User = require('../models/user');
var name = req.body.username,
password = req.body.password,
password_repeat = req.body['password-repeat'],
email = req.body.email;
if( password == null && password_repeat == null ){
req.flash('error','密码为空,请重新输入');
res.redirect('/reg');
return;
};
if( password !== password_repeat ){
req.flash('error','两次密码输入不一致,请重新输入');
res.redirect('/reg');
return;
};
var md5 = crypto.createHash('md5'),
password = md5.update(req.body.password).digest('hex');
User.findOne({name:name},function(err,user){
if(user){
req.flash('error','用户名已存在,请重新注册');
req.redirect('/');
return ;
};
User.create({
name:name,
password:password,
email:email
},function(err,data){
if(err){
req.flash('error','注册失败,请重新注册');
return req.redirect('/reg');
};
//写入session
req.session.user = name;
//注册成功
req.flash('success','注册成功!');
//重定向到首页
res.redirect('/');
});
});
};
路由routes/index.js
module.exports = function(app){
app.get('/',function(req,res,next){
res.render('index',{ title: '博客首页' });
});
app.get('/reg',function(req,res,next){
res.render('reg',{ title: '用户注册' });
});
app.post('/reg',function(req,res,next){
userReg();
});
app.get('/login',function(req,res,next){
res.render('login',{ title: '用户登录' });
});
app.post('/login',function(req,res,next){
//
});
app.get('/post',function(req,res,next){
res.render('post',{ title: '文章发布' });
});
app.post('/post',function(req,res,next){
//
});
app.get('/logout',function(req,res,next){
//
});
app.get('/user/:username',function(req,res,next){
res.send('您的用户名为:' );
});
};
第一次发表,别沉,在此感谢Cnodejs的诸位机油!
10 回复
这样提示userReg is not defined 不知怎么解决,求助
求解呀
不懂
app.post('/reg',function(req,res,next){
userReg();
});
@i5ting 我的意思是我想在请求发送 app.post()的时候,调用上面的那个reg.js但是报错,我不知怎么解决,我想做到吧路由里面的数据库操作分离成一个单独的的文件
@zhang962976642 你贴的代码都没有定义 userReg 函数。另外,我用的模式是下面这样 controller/user.js
exports.reg = function(req, res, next) {
//
};
routes/index.js
const user = require('../controller/user');
app.post('/req', user.reg);
@IchiNiNiIchi 完美解决我的问题,太感谢了,我定义但是const user是什么意思那
@IchiNiNiIchi 看懂你的想法了 当成一个回掉
此贴终结,通过上面@IchiNiNiIchi 的方法问题已解决
这都是基础问题,node里面所有的资源都当做模块,用exports提供外部接口,用require引用。