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实用示例 缩址还原
Dec 28 NodeJs
用nodejs访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
Nodejs核心模块之net和http的使用详解
Apr 02 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 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建立Ftp连接的方法
2015/03/07 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
python实现堆栈与队列的方法
2015/01/15 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
详解python中list的使用
2019/03/15 Python
django用户登录验证的完整示例代码
2019/07/21 Python
python opencv实现证件照换底功能
2019/08/19 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
基于python实现操作redis及消息队列
2020/08/27 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
优质服务演讲稿
2014/05/14 职场文书
汽车维修求职信
2014/06/15 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
齐云山导游词
2015/02/06 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
消费者投诉书范文
2015/07/02 职场文书
捐款仪式主持词
2015/07/04 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
Log4j.properties配置及其使用
2021/08/02 Java/Android
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技