JS函数参数未定义,即使它是
JS function argument undefined, even though it is
我的注册功能出现了一个非常奇怪的错误。
我希望用户能够正常注册。
然后我想要一个“注册管理员”页面,它只用于在数据库中注册一个管理员。
router.get('/register', function(req, res) {
res.render('register', {title: "Register"});
});
router.post('/register', function registerUser(req, res) {
validate.validateRegistration(req.body, res);
});
router.get('/registeradmin', function (req, res) {
res.render('register', {title: "Register ADMIN"});
});
router.post('/registeradmin', function(req, res) {
validate.validateRegistration(req.body, res, 'admin');
});
您可能已经注意到,为了注册管理员,我将 'admin' 作为第三个参数传递,我应该将其保存为用户角色。如果没有参数,则应保存为 'student'
module.exports.validateRegistration = function(data, res, usrRole) {
console.log("validating");
console.log('role: ' + usrRole);
var username = data.username;
var password = data.password;
var email = data.email;
var firstname = data.firstname;
var lastname = data.lastname;
var role = usrRole || 'student';
// validation stuff here
}
差不多就是这些了。
但是
usrRole 未定义
我不知道为什么。
这几乎是我遇到过的最微不足道的错误,我觉得问这个问题很愚蠢,但我不知道为什么会这样。
注册普通用户没问题。
注册管理员在数据库中插入 'student' 作为角色,console.log
表示:
validate called
role: undefined
有什么想法吗?
这应该有用,还是我瞎了?
调试您的代码并确保您正在调用 registeradmin 路由。您可以将 console.log("bla bla");
添加到您的 registeradmin 路由中,以确保您正在调用此路由。
我的注册功能出现了一个非常奇怪的错误。
我希望用户能够正常注册。 然后我想要一个“注册管理员”页面,它只用于在数据库中注册一个管理员。
router.get('/register', function(req, res) {
res.render('register', {title: "Register"});
});
router.post('/register', function registerUser(req, res) {
validate.validateRegistration(req.body, res);
});
router.get('/registeradmin', function (req, res) {
res.render('register', {title: "Register ADMIN"});
});
router.post('/registeradmin', function(req, res) {
validate.validateRegistration(req.body, res, 'admin');
});
您可能已经注意到,为了注册管理员,我将 'admin' 作为第三个参数传递,我应该将其保存为用户角色。如果没有参数,则应保存为 'student'
module.exports.validateRegistration = function(data, res, usrRole) {
console.log("validating");
console.log('role: ' + usrRole);
var username = data.username;
var password = data.password;
var email = data.email;
var firstname = data.firstname;
var lastname = data.lastname;
var role = usrRole || 'student';
// validation stuff here
}
差不多就是这些了。
但是
usrRole 未定义 我不知道为什么。 这几乎是我遇到过的最微不足道的错误,我觉得问这个问题很愚蠢,但我不知道为什么会这样。
注册普通用户没问题。
注册管理员在数据库中插入 'student' 作为角色,console.log
表示:
validate called
role: undefined
有什么想法吗? 这应该有用,还是我瞎了?
调试您的代码并确保您正在调用 registeradmin 路由。您可以将 console.log("bla bla");
添加到您的 registeradmin 路由中,以确保您正在调用此路由。