# 总结在Angular项目中安装和使用msw@1.2.3来mock数据的要点
- 安装msw@1.2.3
- 执行
npx msw init src/ --save
, 这样会自动在src目录下生成mockServiceWorker.js文件 - 手动在src目录下创建一个mock目录, 并创建browser.ts和handler.ts文件
- browser.ts文件中引入handler.ts文件, 并调用setupWorker方法:
import { setupWorker, reset } from 'msw';
import { handlers } from './handler';
export const worker = setupWorker(...handlers);
- handler.ts文件中编写mock数据:
import { rest } from 'msw';
import { setupWorker, reset } from 'msw';
import { handlers } from './handler';
export const worker = setupWorker(...handlers);
export const handlers = [
rest.get('/api/user', (req, res, ctx) => {
return res(
ctx.json({
name: '张三',
age: 18,
})
);
}),]
- 在main.ts文件中引入browser中的worker:
import {} from './mock/browser';
worker.start();
- 注意在angular.json中要配置将mockServiceWorker.js文件添加到assets中:
"assets": [
"src/favicon.ico",
"src/assets",
"src/mockServiceWorker.js"
],
- 如果启动后,拦截请求报错:
Type Error: response2.headers.all is not a function
, 需要安装npm i headers-polyfill@3.2.5 -D