umi3.0 项目json-server 使用过程中模拟登录接口请求

324 阅读1分钟
在umi3.0中使用umi-request 和 request是相等的,只不过request是已经封装好了的。区别在于

const loginAction = useCallback((query) => {

    login(query).then((res) => {

      if (res.user.success) {

        const token = res.user.token;

        localStorage.setItem('token', JSON.stringify(token));

        message.success('登录成功');

        history.push({

          pathname: '/',

        });

      }

    });

  }, []);



 这是umi-request代码

gitURl https://github.com/umijs/umi-request



 request('http://localhost:3000/login', {

        method: 'POST',

        headers: {

        'Content-Type': 'application/json',

        body:JSON.stringify(data)

    },

    body: JSON.stringify(values),

}).then(function (response) {

    console.log(response);

}).catch(function (error) {

    console.log(error);

});



中间件的使用:

在__json_server_mock__文件夹中新建middleware.ts文件

// middleware.ts

module.exports = (req, res, next) => {

  if (req.method === 'POST' && req.path === '/login') {

    if (req.body.username === 'admin' && req.body.password === '123456') {

      return res.status(200).json({

        user: {

          token: 'dsadsada',

          success: true,

        },

      });

    } else {

      return res.status(400).json({

        message: '用户名或密码错误',

      });

    }

  }

  next();

};



最后在修改package.json 

"json-server": "json-server __json_server_mock__/db.json --watch --middlewares ./__json_server_mock__/middleware.ts"

``