NodeJs本地搭建服务器,模拟接口请求,获取json数据

简介: 前言不知道你在项目开发过程中有没有遇到以下场景:一般是前端先制作静态页面,同时服务器端创建数据库,搭建服务器端框架,写接口;当接口写完之后,前端或者后端才能嵌套页面。

前言

不知道你在项目开发过程中有没有遇到以下场景:

一般是前端先制作静态页面,同时服务器端创建数据库,搭建服务器端框架,写接口;当接口写完之后,前端或者后端才能嵌套页面。但是如果前端页面制作好了,后端接口还没有写好呢?或者如何让前端、后端各自做各自的事情,互不影响?

能做到下面这样是不是很好呢?

在进行完需求分析和详细设计后,前端、后端一同商量、制作出一份接口文档(其中接口名、参数、返回值名称、返回值类型都定义好)

前端页面制作好之后,直接模拟出该接口的json文件,先去请求该文件,把页面绑定、业务逻辑都处理好,等前端都绑定好,同时后端接口写好后,我们只需要前端修改接口地址,其他不用做任何处理。这样是不是前端不用等后端接口全部写完才能开始剩下的工作。

1、express 创建一个简单的项目

安装node

新建一个文件,进入目录

安装espress

创建一个工程

安装Express框架:

本地模式:npm install express 

执行该命令后会在当前文件夹下生成一个node_modules目录

全局模式:npm install -g express

 执行该命令后会在C:\Users\Administrator\AppData\Roaming\npm下生成一个node_modules目录

网上推荐都是全局模式的

执行完以上的命令后,通过express --version查看版本号来检查是否安装成功(旧的版本是使用的express -v)

此时窗口打印了:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。

百度后发现,因express默认安装是最新的版本,已经是4.x.x的版本。而最新express4.0+版本中将命令工具分出来了,所以必须要安装express-generator,执行:npm install -g express-generator 全局模式(在C:\Users\Administrator\AppData\Roaming\npm下生成了express、express.cmd两个文件)

此时再次执行express --version

成功输出express框架当前安装的版本号,证明你一安装成功。

下面来建立第一个工程(express默认使用的是jade模板,对于初学者来说,ejs会更容易点):

首先进入到你当前准备创建工程的位置下,执行:express --view=ejs test_express(旧版本为:express -t ejs test_express)

--view=后面填的是当前框架使用的模板,test_express代表当前文件夹的名称

此时你会发现在当前的位置已经存在该文件夹了,下面我们来启动服务器(首先要进入到上面创建的文件夹下面,然后再执行以下的命令):

旧版本的命令为:node app.js(主要是因为就版本中的app.js是用来启动服务器的),而新版本的命令则为:npm start(或者是node bin\www)。

此时访问http://127.0.0.1:3000/

就会出现以下页面,证明服务器启动成功

安装依赖

备注:执行npm install命令会将package.json文件中 dependencies 依赖列表中,即可自动安装依赖列表中所列出的所有模块。

开启服务

img_bb8bcd3232d8ab69b50a5932c26f14b9.png

下面是浏览显示的内容

img_4035b90ef1818bcd34a7f1e8a81c46b9.png

为什么浏览器中出现的内容是这样的呢?

首先打开app.js,然后可以找到这句话

img_a6fd4bda3fd6238ba37a6759739f0db8.png

然后我们再看indexRouter是什么,就可以往上找,找到

img_772ebf1228c0381be3f5cadad7f2435f.png

顺着这个,我们打开routes/index文件,看看里面究竟写的什么

img_bd1e5e815ac3f4980a959f2f668be399.png

原来框架是找到了views文件夹下的index.ejs文件渲染到了前台

img_502681ad5b4ea9332a31c69287f59f94.png

试着修改修改index.js文件的内容,将title改为Hello world.

img_abd7471660fcd7fb21b795a520e7e0eb.png

在命令行中,按ctrl+c关闭服务,重新执行npm start ,看界面中的结果

img_9245516edf2ad5ade7f1eca9d3d2f215.png

看到这里可能有个疑问,我们怎么访问静态的html呢?

首先,我们看app.js中有没有这句话

img_9f2af6816097f36bd48b0b214ba3f8c2.png

有的话则直接看下一步,没有的话就在app.js中添加这句话,记得添加后重新启动服务器

接着,我们在项目的public文件夹下,新建一个html文件下(便于后期管理所有的静态页面),然后新建index.html,内容如下:

img_962d3e6d3bac2b79c724eeda7aae66d1.png

这样在浏览器中输入下面的地址就可访问了:http://localhost:3000/html/index.html

我们现在做到了访问一个html文件,那我们如何模拟ajax请求,读取json文件中的内容,提前绑定页面呢?(不依赖后端接口写好)

为了方便项目管理,我们新建几个文件夹和对应的文件

json文件夹及其对应的index.json文件在jjs文件夹下新建index.js

img_1fd5c079bdcc5e0df809e967fd9d292d.png
img_ecb0df76353f18abff7e4e827467083f.png

在index.html中引入对应的文件

img_47cb4ed37a1f77fe2c142523d3274b06.png

最后再打开访问http://localhost:3000/html/index.html

打开控制台,我们可以看到打印出了我们想要的内容

img_b89a285a2d38957ab5ba196edc077f3d.png

最后附上项目结构

img_6c3993c7620d98a4f457a3195ea6b84b.png

2.vue脚手架中的应用

初始化并创建一个项目

vue init webpack-simple node-demo

cd node-demo

npm i

cnpm i vuex axios

接下来写接口

在 build 文件下的 webpack.dev.conf.js 文件中加入

express基于node.js后端框架,负责路由,业务逻辑,数据库操作,页面和数据响应。

即架构中的业务层,对前端的请求进行响应,需要数据库的拉取数据库内容,需要判断处理的返回处理结果,请求页面文件的返回html文件

img_438b52093c9b61b612840f4c02d0e2ad.png

在 build 文件下的 webpack.dev.conf.js 文件中的 devServer 中加入

img_ac3d26bb02db59aae76de7159075fcc3.png

如下图:

img_7830329c6df5558d09a9eac75333c665.jpe
img_7d51a8c7e430c9611a79a109e150daa4.jpe

三、使用 axios 请求数据

在组件中直接请求数据就好了

img_5322eed0b731f012808e821b44dd605a.png
相关文章
|
1月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
19天前
|
存储 JSON 安全
商品详情(item getAPI接口)json数据格式参考
某东商品详情(item get API接口)的JSON数据格式参考如下
|
19天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
23天前
|
JSON API 数据格式
商品详情(item getAPI接口)json数据格式参考
淘宝商品详情(item get API接口)返回的JSON数据格式是一个复杂且灵活的结构,包含多个字段和对象。以下是一个简化的JSON数据格式参考:
|
22天前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
26天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
1月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
16天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
9天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
14天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
下一篇
无影云桌面