这篇文章主要介绍如何使用nodeJS实现一个模拟数据服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
对于前端开发者而言,javascript正扮演着越来越重要的地位,它不仅能为浏览器端赋能,在web服务器方面也有很大的价值(我们可以用nodeJS来写服务端代码,启动web服务器),因此本文所要描述的,便是javascript在服务端的应用。我将介绍如何使用nodeJS来搭建一个模拟服务器,方便前端自定义模拟数据请求,提高前端开发的主观能动性和对项目健壮性的探索。
<强>我们将学到强>
- <李>
亚基本使用
李> <李>koa-router的基本用法
李> <李>koa-logger的使用
李> <李>一团支持文件遍历查寻
李> <李>节点几个核心api的使用
李> <李>使用nodemon做自动重启
李><强>模拟服务器基本设计思路强>
通过目录路径和服务端api的映射关系来实现我们的api访问,比如我们访问接口/api//122条,我们只需要在模拟服务器目录的api的文章目录下,创122年建。json文件即可,json文件的数据可以自定义,方便前端调试。
<人物> 图>
<强>具体实现强>
1。搭建一个节点服务
const Koa =,要求(& # 39;洋槐# 39;); const app =, new 高雅(); app.listen (3000)
2。注册路由我们使用koa-router来实现后台服务的路由功能,并通过高雅提供的上下文ctx将读取到的数据返回给前端:
const Koa =,要求(& # 39;洋槐# 39;); const Router =,要求(& # 39;koa-router& # 39;); , const app =, new 高雅(); const router =, new 路由器({前缀:& # 39;/api # 39;}); , router.get(& # 39;/名字# 39;,,(ctx,,下一个),=祝辞,{ ctx.body 才能=,{ ,,,的名字:,& # 39;xuxiaoxi& # 39; ,,} ,}); , 应用程序 ,.use (router.routes ()) ,.use (router.allowedMethods ()); , app.listen (3000)
这样我们就能实现一个勉强能用的基本的后台api服务器了,当我们请求/api/名称时,会返回相应的数据给前台,这一步是我们实现模拟服务的关键一步,接下来我们具体来实现目录的遍历和api的自动注册。
3。自动注册api接口并返回数据我们将在这个阶段实现api服务的自动注册,这里我们使用一滴这个第三方模块来遍历目录,并通过节点的fs模块读取api文件的数据并返回给前台.glob的使用很简单,感兴趣的朋友可以自行学习,这里就不做过多介绍了。具体实现如下:
const Koa =,要求(& # 39;洋槐# 39;); const Router =,要求(& # 39;koa-router& # 39;); const glob =,要求(“glob"); {const resolve },=,要求(& # 39;path & # 39;); const fs =,要求(& # 39;fs # 39;); , const app =, new 高雅(); const router =, new 路由器({前缀:& # 39;/api # 39;}); ,//,注册路由 glob.sync(解决(& # 39;。/api # 39;,,“* */* .json")) .forEach((我)项目,,,=祝辞,{ let 才能;apiJsonPath =, item ,,, item.split (& # 39;/api # 39;) [1]; let 才能;apiPath =, apiJsonPath.replace (& # 39; . json # 39;,, & # 39; & # 39;); ,, router.get才能(apiPath, (ctx,,下一个),=祝辞,{ ,,,try { ,,,,,let jsonStr =, fs.readFileSync(项).toString (); ,,,,,ctx.body =, { ,,,,,,,数据:,JSON.parse (jsonStr), ,,,,,,,状态:,200年, ,,,,,,,类型:,& # 39;成功# 39;,//,自定义响应体 ,,,,,} ,,,}捕捉(err), { ,,,,,ctx.throw(& # 39;服务器错误& # 39;,,500); ,,,} ,,}); }); , 应用程序 ,.use (router.routes ()) ,.use (router.allowedMethods ()); , app.listen (3000),
添加控制台日志我们使用koa-logger实现在终端打印节点日志,方便调试,虽然这不是该文章的重点,但是对于想做节点开发的前端从业者,还是很有必要了解的。
const logger =,需要(& # 39;koa-logger& # 39;) app.use (logger ());
这样,我们每个请求都会在终端打印出来。
路由映射文件的生成该功能也不是本文的重点,但是会极大的方便前端开发者调试请求,因为如果api路径很长,我们需要一个个查找,但是有了这个地图文件,我们只需要拷贝自动生成的路径即可。具体实现如下: