我正在尝试为网络应用建立用户注册论坛。
为了重构代码,我创建了一个名为api的文件夹,并在index.js(/api/routes/index.js)中定义了一些路由。
现在我想将我的注册表单路由到(/api/routes/index.js)中的该路由,以便数据可以转到(api / controllers /中定义的 user_sign_up 函数users.js)
我的 app.js 如下:
// some code
var routesApi = require('./api/routes/index');
app.use('/api', routesApi);
// some code
我的(/ api / routes / index)如下:
// some code
var ctrlevents = require('../controllers/users');
router.post('/registeruser', ctrlevents.user_sign_up);
// some code
module.exports = router;
在我的应用程序的服务器文件夹中,我有views文件夹,在其中所有的.html文件都存在。
如何以注册形式定义操作属性的路由?
我的 users.js 如下:
module.exports.user_sign_up = (req, res) => {
// some code
};
我尝试过:
<form method="POST" action="/registeruser">
明白了:
关注正在进行中,但获得了500个状态。
<form method="POST" action="/api/registeruser">
添加user_sign_up函数:
/* GET signup data */
module.exports.user_sign_up = (req, res) => {
Name: req.body.username;
email: req.body.email;
password: req.body.password;
cpassword: req.body.cpassword;
console.log('ghfhghgh');
console.log(email);
console.log(password);
console.log(cpassword);
req.checkBody('Name', 'Name is required').notEmpty();
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('password', 'Password is required').notEmpty();
req.checkBody('cpassword', 'Passwords do not match').equals(req.body.password);
let errors = req.validationErrors();
if (err) {
res.render('register', {
errors:errors
});
}
else {
let newUser = new User({
Name:Name,
email:email,
password:password
})
}
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.password, salt, (err, hash) => {
if(err) {
console.log(err);
}
newUser.password = hash;
newUser.save((err) => {
if(err) {
console.log(err);
return;
}
else {
req.flash('success', 'Welcome to TechPath');
req.redirect('/blog');
}
})
});
})
};
答案 0 :(得分:1)
据我了解,您希望在注册表单中使用action
属性。由于您已经创建了一条路线registeruser
,其中也有控制器user_sign_up
,因此只需将registeruser
传递给表单即可。应该可以。
<form method="POST" action="/registeruser">
</form>
编辑: 我创建了与您类似的结构,我的代码运行良好。尝试将您的代码与我的代码进行比较,如果问题没有解决,请及时通知我。
答案 1 :(得分:0)
我认为您必须使用=
符号分配值
Name = req.body.username;
email = req.body.email;
password = req.body.password;
cpassword = req.body.cpassword;