请求端点相同的应用程序 Expressjs?
Posted
技术标签:
【中文标题】请求端点相同的应用程序 Expressjs?【英文标题】:Request endpoint same application Expressjs? 【发布时间】:2018-04-09 06:26:47 【问题描述】:我有一个端点/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);
);
);
【问题讨论】:
【参考方案1】:如果我理解正确,您有两个端点,/user
和 /register
。 /user
不对普通用户开放,但可能对管理员等可用。现在您想用处理用户角色等的/register
端点包装 add-users-functionality,以确保添加用户安全。
下面是一个例子:
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 函数,私有和公共端点都可以使用。
【讨论】:
以上是关于请求端点相同的应用程序 Expressjs?的主要内容,如果未能解决你的问题,请参考以下文章