我有一个端点/register
。向/user
但是/register
的请求发布是公开的并且/user
是私有的是相同的,那么我认为,MongoDB模型再次正确调用或向用户发出请求是什么,如果它是对用户的请求如何,我的意思是,存在任何形式的调用端点/user
或只是一个请求?
router.post('/register', (req, res) => {
let { body: { user } } = req;
user.type = 'normal';
request.post('/user', { user }).end((err, data) => {
res.json(data);
});
});
答案 0 :(得分:0)
如果我理解正确,您有两个端点,/user
和/register
。 /user
不适用于普通用户,但可能适用于管理员等。现在,您希望将添加用户功能包含在处理用户角色的/register
端点中等,使添加用户安全。
以下是如何执行此操作的示例:
function addUser(req, res, userrole) {
User
.create({
username: req.body.username,
password: req.body.password,
email: req.body.email,
role: userrole,
}, (err, user) => {
let response = {};
if (err) {
response = responseDueToError(err);
} else {
console.log('User created with username:', user.username);
response.status = HttpStatus.CREATED;
response.message = user;
}
return res.status(response.status).json(response.message);
});
}
router.post('/user', (req, res) => { // "private endpoint"
addUser(req, res, 'admin');
};
router.post('/register', (req, res) => { // "public endpoint"
addUser(req, res, 'user');
};
因此,不要在注册终端中创建新请求,而是创建一个单独的addUser函数,私有和公共端点都可以使用。