使用gulp搭建本地服务器并实现模拟ajax


Posted in Javascript onApril 05, 2017

本文主要给大家总结了在工作中可能会用到的小工具,在此记录一下。

可以实现的功能有:

       1. 本地http服务器

       2.页面实时刷新

       3.可以模拟ajax请求

第一步,新建package.json文件。

用到了gulp、gulp-webserver、gulp-livereload

package.json的内容如下:

{
 "name": "localserver",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC",
 "devDependencies": {
 "gulp": "^3.9.1",
 "gulp-webserver": "^0.9.1",
 "gulp-livereload": "^3.8.1"
 }
}

第二步,在当前目录下执行npm install安装所需的包

第三步,建立目录结构

使用gulp搭建本地服务器并实现模拟ajax

其中,www是站点的根目录,用于放置html/js/css等静态文件,api是用于放置模拟ajax请求的js文件,如test.js。则ajax请求/api/test的时候,返回改文件的内容,是一个json对象。

第四步,编写gulpfile.js

gulpfile.js内容如下:

var url = require('url');
var fs = require('fs');
var path = require('path');

gulp = require('gulp');
livereload = require('gulp-livereload');
webserver = require('gulp-webserver');

//web服务器
gulp.task('webserver', function() {
 gulp.src('./www') // 服务器目录(./代表根目录)
 .pipe(webserver({ // 运行gulp-webserver
 port: 8000, //端口,默认8000
 livereload: true, // 启用LiveReload
 open: true, // 服务器启动时自动打开网页
 directoryListing: {
  enable: true,
  path: './www'
 },
 middleware: function(req, res, next) {
  //mock local data
  var urlObj = url.parse(req.url, true),
  method = req.method;


  if (!urlObj.pathname.match(/^\/api/)) { //不是api开头的数据,直接next
  next();
  return;
  }
  var mockDataFile = path.join(__dirname, urlObj.pathname) + ".js";
  //file exist or not
  fs.access(mockDataFile, fs.F_OK, function(err) {
  if (err) {
   res.setHeader('Content-Type', 'application/json');
   res.end(JSON.stringify({
   "status": "没有找到此文件",
   "notFound": mockDataFile
   }));
   return;
  }
  var data = fs.readFileSync(mockDataFile, 'utf-8');
  res.setHeader('Content-Type', 'application/json');
  res.end(data);
  });
  next();
 },
 proxies: []
 }));
});


// 默认任务
gulp.task('default', ['webserver']);

第五步,执行gulp命令,会自动打开浏览器,在8000端口起了http服务。就可以看到你的页面了。 

为了给大家使用方便,我把建立好的目录和文件放在这里了,你下载后,直接运行npm install,然后gulp就可以了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery 查找新建元素代码
Jul 06 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
js实现数组转换成json
Jun 26 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
Dec 28 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
图文讲解vue的v-if使用方法
Feb 11 Javascript
vue axios post发送复杂对象问题
Jun 04 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
Vue.js render方法使用详解
Apr 05 #Javascript
self.attachevent is not a function的解决方法
Apr 04 #Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 #Javascript
Vue.js实战之使用Vuex + axios发送请求详解
Apr 04 #Javascript
Vue.js实战之组件的进阶
Apr 04 #Javascript
关于axios返回空对象的问题解决
Apr 04 #Javascript
jQuery自定义图片上传插件实例代码
Apr 04 #jQuery
You might like
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
js字符串转成JSON
2013/11/07 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
python使用邻接矩阵构造图代码示例
2017/11/10 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
垃圾回收的优点和原理
2014/05/16 面试题
教师绩效考核方案
2014/01/21 职场文书
高三体育教学反思
2014/01/29 职场文书
平安工地建设方案
2014/05/06 职场文书
演讲稿格式范文
2014/05/19 职场文书
小学社会实践活动总结
2014/07/03 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
个人党性分析总结
2015/03/05 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL