让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

首页

你的位置:投彩购彩 > 首页 >

五分钟教你用NodeJS手写一个Mock数据处事器

发布日期:2022-03-13 19:24    点击次数:114

关于前端设立者而言,javascript正上演着越来越攻击的地位,它不仅能为浏览器端赋能,在web处事器方面也有很大的价值(咱们不错用nodeJS来写处事端代码,初始web处事器),因此本文所要态状的,就是javascript在处事端的诈欺。我将先容若何使用nodeJS来搭建一个mock处事器,便捷前端自界说mock数据央求,普及前端设立的主观能动性和对技俩健壮性的探索。

咱们将学到

koa基本使用 koa-router的基本用法 koa-logger的使用 glob因循文献遍历查寻 node几个中枢api的使用 使用nodemon做自动重启

mock处事器基本盘算推算头绪

通过目次旅途和处事端api的映射相干来竣事咱们的api拜访,比如咱们拜访接口/api/article/122,咱们只需要在mock处事器目次的api的article目次下,创建122.json文献即可,json文献的数据不错自界说,便捷前端调试。

具体竣事

1.搭建一个node处事

const Koa = require('koa'); const app = new Koa(); app.listen(3000) 

2.注册路由 咱们使用koa-router来竣事后台处事的路由功能,并通过koa提供的凹凸文ctx将读取到的数据复返给前端:

const Koa = require('koa'); const Router = require('koa-router');   const app = new Koa(); const router = new Router({prefix: '/api'});  router.get('/name', (ctx, next) => {     ctx.body = {         name: 'xuxiaoxi'     }   });  app   .use(router.routes())   .use(router.allowedMethods());    app.listen(3000) 

这么咱们就能竣事一个免强能用的基本的后台api处事器了,当咱们央求/api/name时,会复返相应的数据给前台,这一步是咱们竣事mock处事的要津一步,接下来咱们具体来竣事目次的遍历和api的自动注册。

3.自动注册api接口并复返数据 咱们将在这个阶段竣事api处事的自动注册,这里咱们使用glob这个第三方模块来遍历目次,并通过node的fs模块读取api文献的数据并复返给前台。glob的使用很浅近,感有趣有趣的至友不错自行学习,这里就不做过多先容了。具体竣事如下:

const Koa = require('koa'); const Router = require('koa-router'); const glob = require("glob"); const { resolve } = require('path'); const fs = require('fs');   const app = new Koa(); const router = new Router({prefix: '/api'});  // 注册路由 glob.sync(resolve('./api', "**/*.json")).forEach((item, i) => {     let apiJsonPath = item && item.split('/api')[1];     let apiPath = apiJsonPath.replace('.json', '');          router.get(apiPath, (ctx, next) => {         try {             let jsonStr = fs.readFileSync(item).toString();             ctx.body = {                 data: JSON.parse(jsonStr),                 state: 200,                 type: 'success' // 自界说反馈体             }         }catch(err) {             ctx.throw('处事器诞妄', 500);         }       }); });   app   .use(router.routes())   .use(router.allowedMethods());  app.listen(3000); 

添加适度台日记 咱们使用koa-logger竣事在终局打印node日记,便捷调试,诚然这不是该著作的要点,然则关于想做node设立的前端从业者,已经很有必要了解的。

const logger = require('koa-logger') app.use(logger()); 

这么,咱们每个央求都会在终局打印出来。

路由映射文献的生成 该功能也不是本文的要点,然则会极大的便捷前端设立者调试央求,因为要是api旅途很长,咱们需要一个个查找,然则有了这个map文献,咱们只需要拷贝自动生成的旅途即可。具体竣事如下:

//... const routerMap = {};  // 存放路由映射  // 注册路由 glob.sync(resolve('./api', "**/*.json")).forEach((item, i) => {     // ...          // 记载路由     routerMap[apiJsonPath] = apiPath; });  fs.writeFile('./routerMap.json', JSON.stringify(routerMap, null , 4), err => {     if(!err) {         console.log('路由舆图生认识效!')     } }); 

基本目次结构

本文转载自微信公众号「趣谈前端」