Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。
在express中设置模板引擎。 定义模板引擎varexpress=require(\'express\'); varapp=express();
##准备工作: 1.安装nodejs 2.安装express npm install express -g 3.安装express应用生成器 npm install express-generator -g 3.安装supervisor npm install supervisor -g ##快速搭建服务器步骤: 1.新建项目文件夹,如Test,进入文件夹内 2.打开Git Bash,运行express,可以看到会初始化一堆文件 3.安装依赖包 npm i...
一、起步 ---- http://www.alloyteam.com/2015/03/sexpressmysql/ 二、理解 ---- 1.MVC Model:dao,userSqlMapping View:jade,ejs Controller:router
最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架。 框架的作用就是提高开发效率,快速产出结果。即使不使用框架,我们也会在开发过程中逐渐形成构成框架。 大多数的node.js项目中都会用到express.js 目录:一、什么是express.js框架二、express.js是怎么工作的三、expres.js的安装四、express.js的脚手架五、express.js的helloworld基本应用 一、什么是express.js框架?Express.js框架是基于node.js的http模块和connect组件的web框架。Connect组件就是中间件,以约定大于配置原则作为开发理念。 如果使用核心的node.js模块来开发web应用,会发现很多的代码冗余,例如:1、解析http请求消息2、解析cookie3、管理session4、根据http请求的方法类型和url路径做路由解析 REST API服务包含两种路由方式,1、基于http请求类型;2、基于URL开发人员不得不做很多繁琐的工作,需要做http请求方式,url路由解析,分析请求,响应数据等等。 Express.js很好的解决这些繁琐的工作,express.js框架提供了一个类似MVC的架构,,web应用提供了一个良好的结构(MVC)(模型,视图,路由)。 二、express.js是如何工作的?Express.js是单入口的主文件启动。我们在node命令中启动这个文件。这个文件中,以下事情:1、引入第三方模块,比如控制器,公共模块,辅助模块和模型。2、配置express.js,例如模板引擎3、连接到数据库,mongoDB,redis,mysql4、定义中间件5、定义路由6、启动应用7、模块化输出应用 三、express.js的安装Express包有两种形式:1、express-generator:一个提供在命令行中快速搭建全局NPM包2、express:一个在Node.js应用中的node_modules文件夹里的本地模块包 1、express.js生成器以全局形式安装express.js生成器,命令行输入npm install –g express-generator@4.0.0 2、本地expres.js通过在命令行输入mkdir 文件夹名新建一个文件夹,这个文件夹名就是项目文件夹。cd 文件夹名打开该文件夹名。通过在命令行输入npm init创建package.json 最后通过npm安装模块,在命令行输入npm install express@4.1.2 –save 四、express.js脚手架具有基本的结构后,通过稳定的脚手架快速启动是非常有必要的,这就是为啥有那么多的不同类型的脚手架。 五、helloworld的web应用不使用生成器,高级模块,中间件来搭建express.js的应用。步骤:1、创建文件夹2、npm初始化和配置packag.json3、依赖声明4、app.js文件5、结合jade6、运行应用 1、创建文件夹node_modules文件夹:express.js和第三方模块的依赖都在这个目录下views文件夹:jade或者其他模板引擎文件  2、npm初始化和package.json我们不用express.js生成器,手动创建一个express.js应用,npm是什么,npm是node.js 的包管理器,创建package.json文件是必须的。(1)可以使用在命令行输入npm init输入完成之后就会生成一个package.json文件。(2)也可以创建package.json文件的方式,写入或者复制粘贴package.json并运行。package.json文件内容{"name": "express","version": "1.0.0","description": "" "main": "index.js","scripts": {    "start": "node index.js"  },"dependencies":{"express":"4.1.2","jade":"1.3.1","mongoskin":"1.4.1","stylus":"0.44.0"}, "author": "","license": "ISC"}3、index.js文件index.js文件内容var express = require('express');var http = require('http');var path = require('path');var app = express();app.set('port', process.env.PORT || 3001);app.set('views', path.join(__dirname, 'views'));app.set('view engine', 'jade');app.all('*', function(req, res) {  res.render('index', {msg: 'Welcome to my coding life!n欢迎来到coding世界'})})http.createServer(app).listen(app.get('port'), function(){  console.log('Express server listening on port ' + app.get('port'));});  4、jade模板  5、运行在命令行输入node index效果图,如下图所示  
摘要Express是一个简洁灵活的node.js web应用框架,提供了一系列强大特性帮助你创建各种web应用和丰富的http工具。使用express可以快速创建一个完整功能的网站。ExpressExpress核心特性:可以设置中间件来响应http请求。定义了路由表用于执行不同的Http请求动作。可以通过向模版传递参数来动态渲染HTML页面。安装Express检查是否安装了cnpm,没有安装可以参考这里进行安装,https://npm.taobao.org/你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npmnpm install -g cnpm --registry=https://registry.npm.taobao.org安装cnpm成功安装Express框架,并将其保存到依赖列表中(注意:需要使用管理员身份运行cmd),进入web应用项目目录,这里项目所在目录为D:node,运行下面命令:cnpm install express --save以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。cnpm install body-parser --savecookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。cnpm install cookie-parser --savemulter - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。cnpm install multer --save安装成功后,查看express的版本号cnpm list express一个例子接下来我们使用 Express 框架来输出 "Hello express World"。以下实例中我们引入了 express 模块,并在客户端发起请求后,响应 "Hello express  World" 字符串。创建 express_demo.js 文件,代码如下所示://express_demo.js文件var express=require("express");var app=express();app.get('/',function(request,response){response.send("Hello express world.");});var server=app.listen(8081,function(){var host=server.address().address;var port=server.address().port;console.log("应用实例,访问地址为 http://%s:%s",host,port);});执行浏览器响应内容请求和响应Express应用使用回调函数的参数request和response对象来处理请求和响应数据,如上面例子中:app.get('/',function(request,response){response.send("Hello express world.");});Request该对象表示http请求,包含了请求查询字符串,参数,内容,http请求头部等属性。req.app:当callback为外部文件时,用req.app访问express的实例。req.baseUrl:获取路由当前安装的URL路径。req.body / req.cookies:获得「请求主体」/ Cookies。req.fresh / req.stale:判断请求是否还「新鲜」.req.hostname / req.ip:获取主机名和IP地址。req.originalUrl:获取原始请求URL。req.params:获取路由的parameters。req.path:获取请求路径。req.protocol:获取协议类型。req.query:获取URL的查询参数串。req.route:获取当前匹配的路由。req.subdomains:获取子域名。req.accepts():检查可接受的请求的文档类型。req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一个可接受字符编码。req.get():获取指定的HTTP请求头。req.is():判断请求头Content-Type的MIME类型。Response该对象表示http响应,即在接收到请求时向客户端发送的http响应数据。res.app:同req.app一样。res.append():追加指定HTTP头。res.set()在res.append()后将重置之前设置的头。res.cookie(name,value [,option]):设置Cookie。opition: domain / expires / httpOnly / maxAge / path / secure / signed。res.clearCookie():清除Cookie。res.download():传送指定路径的文件。res.get():返回指定的HTTP头。res.json():传送JSON响应。res.jsonp():传送JSONP响应。res.location():只设置响应的Location HTTP头,不设置状态码或者close response。res.redirect():设置响应的Location HTTP头,并且设置状态码302。res.send():传送HTTP响应。res.sendFile(path [,options] [,fn]):传送指定路径的文件 -会自动根据文件extension设定Content-Type。res.set():设置HTTP头,传入object可以一次设置多个头。res.status():设置HTTP状态码。res.type():设置Content-Type的MIME类型。路由上面了解request已经response对象的一些属性,而路由将决定请求的去处,决定响应给客户端的是哪个页面。在http请求中,我们可以通过路由提取出请求的url以及get、post参数。一个例子创建express_demo2.js,代码如下:var express=require("express");var app=express();//主页输出 express indexapp.get('/',function(req,res){console.log("请求get");res.send("express index");});//post 请求app.post('/',function(req,res){console.log("主页post请求")res.send("post request");});// 路由 /del_user 页面响应app.get('/del_user',function(req,res){console.log("/del_user 响应delete请求")res.send("删除页面");});// 路由 /list_user 页面响应app.get('/list_user',function(req,res){console.log("/list_user get")res.send("用户列表页面");});// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求app.get('/ab*cd',function(req,res){console.log("/ab*cd get请求")res.send('正则匹配');});var server=app.listen(8081,function(){var host=server.address().address;var port=server.address().port;console.log("应用实例,访问地址为 http://%s:%s",host,port);});首页用户列表正则匹配无法解析地址静态文件Express 提供了内置的中间件 express.static 来设置静态文件如:图片, CSS, JavaScript 等。你可以使用 express.static 中间件来设置静态文件路径。例如,如果你将图片, CSS, JavaScript 文件放在 public 目录下,你可以这么写:app.use(express.static('public'));一个例子访问目录为public/images中的图片girl.jpg,创建express_demo3.jsvar express=require("express");var app=express();app.use(express.static("public"));app.get('/', function (req, res) {res.send('Hello World');})var server = app.listen(8081, function () {var host = server.address().addressvar port = server.address().portconsole.log("应用实例,访问地址为 http://%s:%s", host, port)})访问get方法通过get方法提交2个参数,用process_get来处理输入:index.html<html><head><title>My first page.</title></head><body><form action="http://127.0.0.1:8081/process_get" method="GET">First Name: <input type="text" name="first_name"> <br>Last Name: <input type="text" name="last_name"><input type="submit" value="Submit"></form></body></html>server.jsvar express=require("express");var app=express();app.use(express.static("public"));app.get('/index.html', function (req, res) {console.log(__dirname );res.sendFile(__dirname +"/index.html");})app.get('/process_get', function (req, res) {response={
1.npm install -g express-generator2.进入服务目录(自己定义的文件夹,或者express Myapp && cd Myapp 新建Myapp文件夹并进入)3.npm install4.express -e5.Y 继续6.npm install install7.npm start 或者 node app.js cnpm/npm  init 自动安装packpage.json 文件可以通过npm install 安装想要的依赖包了!
前段时间在慕课网上看了 scott 大神的《node+mongodb建站攻略》课程,按照自己的思路做了一遍,发博客记录一下 一、项目介绍这个项目是一个简单的电影网站,由首页、详情页、评论列表三个页面构成其中首页展示所有电影;详情页展示指定电影的详细信息,并具备提交评论的功能;评论页展示所有的评论信息(原计划是放在后台管理里面的,后来懒癌发作,就不做后台了) 效果如下: 项目使用 SQL Server 2008 做数据库(电脑上有现成的),Express 框架搭建服务,前端页面都是通过 jade 模板引擎生成,为了少写点 css 就引入了 Bootstrap (懒...)GitHub 地址:https://github.com/wisewrong/node-test网站链接:http://www.wisewrong.com/欢迎拍砖~ 二、配置路由首先使用 express 创建一个项目express node-movie 因为使用 SQL Server 作为数据库,所以需要引入 mssql 模块然后还需要引入 bootstrap 和 jquery,所以在 package.json 中添加这几个字段然后 npm install 安装依赖项 在 app.js 中能找到这样的一段代码这里将 views 目录设置为视图目录,用来存放静态页面,并且只识别 .jade 类型的文件如果直接使用 .html 文件,就需要把第二行代码改为app.set('view engine', 'html');但是通过模板引擎,在后端渲染页面的效率更高常用的模板引擎有 ejs 和 jade,通过 Express 搭建的项目会默认使用 jade,所以这里我们也使用 jade 写模板// jade 因为商标冲突,已经改名为 pug,但是 express 默认依赖还没改名,就先继续用 jade 吧如果还不熟悉 jade 的语法,可以看一看这篇文章学习一下  https://segmentfault.com/a/1190000000357534 我一共写了这五个模板,其中 error.jade 是 404 页面,layout.jade 是基本结构,包含 header 和 footerindex.jade 是首页,detail.jade 是详情页,list.jade 是评论列表 上一篇博客中提到,如果需要引入 css 或者 js,一般是css 和 js 文件拷贝到 public 目录下,然后在页面中引入项目中需要引入 bootstrap,如果以这种方式引入,还得去 node_modules 目录下找到对应的文件所以我在 app.js 中添加了这一行代码app.use('/lib', express.static(path.join(__dirname, 'node_modules')));这样在 layout.jade 中引入的依赖文件的时候,就可以这么写 页面内容可以先忽略,先把路由给配置好在 routes 目录下创建三个页面对应的 js 文件 然后在 app.js 中引入在 app.js 中配置路由结点然后在浏览器中打开项目,就能正确的渲染页面了 三、创建数据熟悉 SQL Server 的小伙伴可以跳过这一节,这部分只是介绍如何在 SQL Server 中创建简单的数据 具体的页面开发不再赘述,熟悉了 jade 的语法之后,写起来还是很顺手的在开发页面的时候,页面上的数据可以先写死,以方便查看页面效果页面开发完成之后,再把数据挪到数据库里面 在 SQL Server 中创建数据并不复杂,首先打开 SQL Server,连接本地服务器,创建一个登录名 然后创建一个数据库 展开刚才新建的数据库,新建表将 id 设为唯一标识,不可为 null,其他字段只设定数据类型即可编辑完成后 CTRL+S 保存并命名(记住这个表名)然后选择刚才创建的表,右键 “编辑前200行”,然后录入数据 四、连接数据库以首页为例,在连接数据库之前,页面上需要这些参数:为了获取到 movies,需要连接数据库,首先在 index.js 里面引入 mssql 模块关于 mssql 的详细信息可以看这里(英文)https://www.npmjs.com/package/mssql 然后创建配置项: 连接数据库const sql = require('mssql')/* GET home page. */router.get('/', function(req, res, next) {sql.connect(config).then(() => {// 插入SQL语句return sql.query`select * from mytable`}).then(result => {res.render('index', {title: 'WiseWrong',movies: result.recordset //查询结果});sql.close(); // 断开数据库的连接,很关键}).catch(err => {res.render('error');console.log('出错了 ', err);})sql.on('error', err => {res.render('error');console.log('出错了 ', err);})});上面的代码是直接写在 index.js 里面了,如果每个页面都写一套,肯定会有大量的重复性代码,所以一定得封装一下 如果是提交表单,只需要把接口地址改一改,然后处理数据,编写SQL就行 
http://docs.oracle.com/javase/tutorial/essential/regex/index.htmlThis lesson explains how to use the
Regular expressions are used to search and manipulate the text, based on the patterns. Most of the L
记得从高中上课时经常偷偷的和同学们使用qq进行聊天,那时候经常需要进行下载qq,但是当时又没有那么多的流量进行下载,这就是一个很尴尬的事情了,当时就多想要有一个可以进行线上聊天的网站呀,不用每次痛苦的进行蓝牙传送软件了,现在,我从事了IT这个行业,便想要去实现当初的那个梦想吧。毕竟,不去努力的实现梦想,你会从一个梦想家变成一个幻想家。###技术选择由于从事的是前端工作,界面什么的对我来说是so easy,后台部分当然是选择了node.js,经过分析呢,数据库部分选择了mongoose,很早之前做个一个简易的聊天室,采用的是ajax轮询后台的方式实现的,这种方式对于服务器的压力很大,而且在用户量上去的的时候也会出现卡顿的现象,客户端和服务器通信使用的是webSocket协议。使用WebScoket协议,我们可以实现客户端和服务器的全双工通信,实现实时的服务器向客户端的消息推送,信息返回。由于浏览器对于WebScoket的支持性不是特别普遍,所以我们使用的是封装了WebScoket的socket.io,socket.io可以适配于所有的浏览器,因此,我们使用socket.io来实现客户端和服务端的通信。选中MongoDB是因为它的简便性以及易操作性,聊天系统并不是说必须要严格遵守例如MySQL的CUID等准则,它允许我们可以延迟个几百毫秒收到聊天信息,其优点主要有:(1)mongodb数据库体积较小,系统运行时较为灵活。(2)可以提供对于任意类型的数据的查询。(3)使用相应的技巧可以降低我们代码量以及提升查询速度。(4)mongodb可以对我们之前的表格进行预加载。###系统设计我们简要的选择了我们要使用的技术,那么我们还需要对要做的产品进行分析设计,分析出来我们要做的产品都有哪些功能,我们要怎么样去实现这些功能,根据之前对于聊天系统的认知,我们设置系统的功能暂时分为后台管理系统和前台聊天室。其中后台管理系统有当前用户管理功能、聊天信息管理功能、而前台聊天室拥有添加好友、删除好友、好友私聊、群组群聊、修改密码、修改个人信息等功能。大概的功能模块图如下所示:系统的具体实现经过上部分的分析,我们队系统有了初步的认知。该系统分为两个主体,用户登录后的主页即为聊天室主页如图1所示。系统管理员登录后的主页即为adminChat.ejs如图2所示。图1 聊天室主页图2 后台管理主页1 登录模块由于是聊天系统,所以用户必须先要经过登录才能进入聊天室或者后台管理系统。因此系统的首页便是登录页,在登录页也可以进行注册。下面以“登录”功能进行主要讲解。在登录界面,主要使用ajax去异步判断是否能登录成功,如果数据库中没有该用户,会提示用户前去注册,采用MVC设计模式。其运行界面如图3所示。图3 登录界面登录界面前台代码如下://Form表单的提交控件代码<form class="form-horizontal" method="post" action="/login"><div class="form-group row" margin-top: 40px; color: white;" ><label for="username" class="control-label col-sm-4" >用户名</label><div class="col-sm-6"><input type="text" class="form-control" id="username" name="username" placeholder="用户名"></div></div><div class="form-group row" color: white;"><label for="password" class="control-label col-sm-4">密码</label><div class="col-sm-6"><input type="password" class="form-control" id="password" name="password" placeholder="密码"></div></div><div class="form-group row" text-align: center;"><button type="submit" class="btn btn-primary">登陆</button><a href="/reg" class="btn btn-primary">注册</a></div></form>其后台主要代码如下://登录操作router.post('/login', function(req, res, next) {//判断用户名是否存在User.findOne({username:req.body.username},function (error,user) {if (!user) {//用户名不存在error = "用户名不存在,请先去注册";}else if (req.body.password !== user.password) {error = "密码输入错误";}if (error) {req.session.error = error;//跳转路由return res.redirect('/login');}req.session.success = '登录成功';//跳转到首页req.session.user = user;if(user.username === 'weChatAdmin'){//如果是管理员登录,就登录到管理员界面res.render('adminHome',{user:user});}else{res.render('chatHome',{user:user});}})});2 注册模块可以从登录页直接跳转到注册页,注册时会先判断当前的用户名是否已经被注册,如果没有被注册,就将新增的用户信息插入到用户列表中。注册时为了提高用户体验性,便没有将用户所需字段全部让新用户进行填写,用户可以到聊天室中进行个人信息的完善。注册界面如图4所示。图4 注册界面注册的后台主要代码如下://注册操作router.post('/reg', function(req, res, next) {//1.查询数据库,判断当前的用户名是否存在User.findOne({username:req.body.username},function (error,user) {//用户已经存在if (user) {//console.log('用户已经存在');error = "该用户名已存在,请重新输入";}else if (req.body.password !== req.body.repassword) {error = "两次密码输入不一致";//console.log("两次密码输入不一致");}if (error) {//将错误存入sessionreq.session.error = error;//回到注册页面return res.redirect('/reg');}3 个人信息当用户为普通用户时,登录进聊天室后,通过点击左上角的用户头像进行个人信息的查看、修改。“查看”功能的实现原理是:当点击头像时,触发绑定在头像上的点击事件,在事件中,先异步根据用户ID去数据库中获取用户信息,然后触发模态框弹出事件,并对模态框进行渲染,使用模态框控件来展示用户信息。其效果界面如图5所示。图5 展示个人信息界面后台查询的mongoose代码如下:User.find({username:req.body.username},function(error,user){if(error){res.send({ status:8000,msg :"查询用户列表失败"});}else{res.send({status:200,user:user});}});有了查看功能,便引出了修改功能,在查看界面可以直接点击编辑按钮,从而触发编辑模态框的展示事件,先异步去获取该用户的信息,对模态框进行渲染,然后对输入框进行编辑,编辑完成后,点击确定按钮,首先会数据框的数据进行格式判断,然后将修改后的数据根据用户ID保存到数据库用户表中。其效果界面如图6所示。图6 编辑个人信息界面使用ajax进行异步修改,js部分代码如下所示:$.ajax({type:'post',dataType:'json',data:queryData,url:'/compileUserInfo',success:function(data){if(data.status == 200){alert(data.msg);$('#compileUserInfoModel').modal('hide');//成功后将模态框关闭//在这里进行input值得初始化}else{alert(data.msg);}},error:function(e){alert(e);},})后台主要代码如下所示:router.post('/compileUserInfo',function(req,res,next){var username = req.body.username;var oldValue = {username:req.body.username};varnewValue= {$set:{username:req.body.username ,mail:req.body.mail,phone:req.body.phone,country:req.body.country,city: req.body.city}};User.update(oldValue,newValue,function(err,result){if(err){res.send({status:8000,msg:"编辑用户信息失败"});}else{res.send({status:200, msg:"编辑用户信息成功"});}})});4 密码修改在聊天室左边的个人交互框中,点击系统设置,便找到了当前用户的密码修改。点击出现修改密码的模态框。其实现方法是先判断用户输入的原密码是否正确,然后判断新密码和重复输入的密码是否一致。通过判断条件后根据用户ID将用户密码修改为新密码保存到数据库中。其运行界面如图7所示。图7 修改用户密码界面后台sql代码如下:User.update({username:username},{$set:{password:newPassword}},function(err,result){if(err){res.send({status:8000,msg:"修改用户密码失败"});}else{res.send({status:200,msg:"修改用户密码成功"});}});####5 好友管理5.1 添加好友聊天室的最右边,是当前系统中所有的用户列表,如果想要和某个用户进
用firebug查看网络请求发现js没有问题,问题在于ajax返回的数据错误,格式是<scripttype='text/javascript'> ... ...</script>所以报错显示的是返回的串的第一个字符“<”
本篇文章主要介绍了Express之托管静态文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章主要介绍了详解express + mock让前后台并行开发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了Express的HTTP重定向到HTTPS的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
morgan是express默认的日志中间件,这篇文章主要介绍了express默认日志组件morgan的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了使用express搭建一个简单的查询服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章主要介绍了Express进阶之log4js实用入门指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章主要介绍了使用ngrok+express解决本地环境中微信接口调试问题,需要的朋友可以参考下
本篇文章主要介绍了express如何使用session与cookie的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
很多人都在问到底该用Koa还是express,所以下面这篇文章就来给大家再次的对比了关于express与koa的相关资料,通过对比大家可以更好的进行选择,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
本篇文章主要介绍了深入剖析Express cookie-parser中间件实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章主要介绍了使用mock.js随机数据和使用express输出json接口的实现方法,需要的朋友可以参考下
这篇文章主要介绍了express+mockjs实现模拟后台数据发送功能,需要的朋友可以参考下