nodejs构建本地web测试服务器 如何解决访问静态资源问题


Posted in NodeJs onJuly 14, 2017

直接打开html文件,是以file:///方式打开的,这种方式很多时候会遇到跨域的问题,因此我们一般会搭建一个简易的本地服务器,来运行测试页面。

一、构建静态服务器

1、使用express模块

建立个js文件,命名server,内容代码如下:

var express = require('express');
var app = express();
var path = require('path');

//指定静态资源访问目录
app.use(express.static(require('path').join(__dirname, 'public')));
// app.use(express.static(require('path').join(__dirname, 'views'))); 如果有文件夹存放资源,出现报错的话,那就多use几次就可以了
// 设定views变量,意为视图存放的目录
app.set('views', (__dirname + "/public"));
// app.set('views', __dirname);
// 修改模板文件的后缀名为html
app.set( 'view engine', 'html' );
// 运行ejs模块
app.engine( '.html', require( 'ejs' ).__express );

app.get("/", function(req, res) {
  res.render('index');
});

var server = app.listen(1336, "127.0.0.1",function(){
  var host = server.address().address;
  var port = server.address().port;
  console.log("Server running at http://%s:%s", host, port)
});

文件结构如下:

nodejs构建本地web测试服务器 如何解决访问静态资源问题

运行的话只要执行:node server.js 就可以了

然后在浏览器输入http://127.0.0.1:1336/ 来访问项目文件夹内的文件了

2、使用connect模块

建立个js文件,命名 server2 ,内容代码如下:

var connect = require("connect");
 var serveStatic = require("serve-static");

 var app = connect();
 // app.use(serveStatic("C:\\xxx\\xxx\\xxx\\项目文件夹"));
 app.use(serveStatic("public"));

 app.listen(1337);
 console.log('Server running at http://127.0.0.1:1337/');

运行的话只要执行:node server2.js 就可以了,

然后在浏览器输入http://127.0.0.1:1337/ 来访问项目文件夹内的文件了。(如果是index.html文件可以省略不写,默认加载的就是这个文件);

3、使用http模块

建立个js文件,命名 server3 ,内容代码如下:

var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')

// Serve up public/ftp folder
var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})

// Create server
var server = http.createServer(function onRequest (req, res) {
  serve(req, res, finalhandler(req, res))
})

// Listen
server.listen(1338);
console.log('Server running at http://127.0.0.1:1338/');

运行的话只要执行:node server3.js 就可以了,

然后在浏览器输入http://127.0.0.1:1338/ 来访问项目文件夹内的文件了。

注:总的文件目录如下:

nodejs构建本地web测试服务器 如何解决访问静态资源问题

源码下载地址:https://github.com/arvin0/nodejs-example/tree/master/web-static-test-server

二、解决访问静态资源

主要使用两个模块

1.通用的 serve-static 模块

详细文档:https://github.com/expressjs/serve-static

2.express专属的  app.use(express.static(require('path').join(__dirname, 'public')));  方法

详细文档:http://expressjs.com/en/4x/api.html ,然后ctrl+F搜索 express.static ,就能找到对应的说明了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
详解NodeJS Https HSM双向认证实现
Mar 12 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 #NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 #NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 #NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 #NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 #NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 #NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 #NodeJs
You might like
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Python程序设计入门(3)数组的使用
2014/06/16 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python找出因数与质因数的方法
2019/07/25 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
财务会计专业推荐信
2013/11/30 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
高中军训第一天感言
2014/03/06 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
合伙经营协议书
2014/04/18 职场文书
文明工地标语
2014/06/16 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
政风行风评议工作总结
2014/10/21 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android