我想在 Web 服务和网站的节点中使用注册功能



>问题是我不知道如何区分。

我试过Router.post('/signup')

在网站中,我想重定向到用户页面成功和

在网络服务中,我想发送响应的json数组,

我不是要求编写完整的代码,只是为我指出正确的研发方向。

您可以为注册创建两个 API 端点。喜欢Router.post('/api/signup')Router.post('/signup').

网络服务:

所以当你调用这个 API 端点时,让我说,它会返回一个user对象。

Router.post('/api/signup', (req, res) => {
    // some stuff;
    return user;
});

网站:

在此路由器中,使用一些外部模块(如requestaxios(向/api/signup发出 post 请求,如果实现,将使用 cookie 获取用户对象(护照(。

Router.post('/signup', (req, res) => {
    //some stuff
    request.post('http://www.example.com/signup', form: {key:'value'}}, (err, response, body) => {
        if (response.user)
            res.redirect('/point');
    });
});

您应该为网站和 Web 服务提供不同的路由。两个路由都应使用两个中间件。

第一个中间件应该完成实际的注册工作。您应该在网站和 Web 服务中使用此中间件。

第二个中间件应该处理善后。对于网站,这是您进行重定向的地方。对于 Web 服务,这是您发送 JSON 响应的位置。

下面是一个示例代码:

websiterouter.post('/signup', bodyParser.urlencoded({extended: true}), signupMiddleware, redirectionMiddleware);
webservicerouter.post('/signup', bodyParser.json(), signupMiddleware, responseMiddleware);

哪里:

var signupMiddleware = function(req, res, next){
    db.save({ 'username': req.body.username, 'password': req.body.password });
    next();
};
var redirectMiddleware = function(req, res, next){
    res.redirect('/userPage');
};
var responseMiddleware = function(req, res, next){
    res.status(200).json({ 'successfullyRegistered': true });
};

免責聲明:

  1. db.save 只是需要做什么的松散表示。
  2. 保存用户数据而不检查重复的用户名可能是一种不好的做法
  3. 将未加密的密码保存到数据库中绝对是一种可怕的做法,请不要这样做。

相关内容

  • 没有找到相关文章

最新更新