【node.js】搭建可访问静态文件的服务器①
2018-03-30 16:06
811 查看
前言: 学会了如何搭建了服务器之后,就要开始运用服务器来访问静态文件了。
一、先上访问静态文件的完整代码
(先走下流程,再解析代码)
//加载模块
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path')
var server = http.createServer(function(req, res){
var staticPath = path.join(__dirname,'act');
var pathObj = url.parse(req.url, true);
var filePath = path.join(staticPath, pathObj.pathname);
var fileContent = fs.readFileSync(filePath,'binary');
res.write(fileContent,'binary');
res.end();
});
server.listen(8080);
console.log('服务器已打开, 可以运行 ①、将代码复制到server.js文件中。(我的server.js是放在E盘下的subject文件中)' target='_blank'>http://localhost:8080');①、将代码复制到server.js文件中。(我的server.js是放在E盘下的subject文件中) ②、同时server.js同目录下创建一个act文件,用于存放html文件
③、在act里面创建一个index.html文件。(内容大家随便)。
④、在cmd终端运行server.js(不知道如何运行,可以看我以前写的“node.js简易上手”);
⑤、在浏览器中输入http://localhost:8080/index.html。就可以运行了。(如果在chrome浏览器运行有问题的朋友,可以在火狐浏览器打开)
二、代码分析。//加载模块
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path')
var server = http.createServer(function(req, res){
//1.__dirname是全局变量,可以直接获取。表示当前执行脚本所在的目录。(这里是E:\subject)
var staticPath = path.join(__dirname,'act'); //path.join方法,拼接目录地址
//2.staticPath拼接后的目录地址,为了跳到自己项目所在那个目录。(这里是E:\subject\act)
//3.req.url请求的链接(这里输出的是/index.html)
var pathObj = url.parse(req.url, true); //url.parse方法,解析请求的url,解决链接"\"和"/"的差异问题。
//4.解析后的req.url是个对象。
//5.从解析后的对象中获取到pathname(这里pathObj.pathname是/index.html)
var filePath = path.join(staticPath, pathObj.pathname); //path.join方法,拼接完整项目目录地址。
//6.fileContent拼接后的项目目录名字(这里是E:\subject\act\index.html)
//fs.readFileSync方法,同步读取文件信息
var fileContent = fs.readFileSync(filePath,'binary'); //读取拼接完整后的目录中的文件, 'binary'表示二进制方式读取
res.write(fileContent,'binary');
res.end();
});
server.listen(8080);
console.log('服务器已打开, 可以运行 这里要注意下的是
一、先上访问静态文件的完整代码
(先走下流程,再解析代码)
//加载模块
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path')
var server = http.createServer(function(req, res){
var staticPath = path.join(__dirname,'act');
var pathObj = url.parse(req.url, true);
var filePath = path.join(staticPath, pathObj.pathname);
var fileContent = fs.readFileSync(filePath,'binary');
res.write(fileContent,'binary');
res.end();
});
server.listen(8080);
console.log('服务器已打开, 可以运行 ①、将代码复制到server.js文件中。(我的server.js是放在E盘下的subject文件中)' target='_blank'>http://localhost:8080');①、将代码复制到server.js文件中。(我的server.js是放在E盘下的subject文件中) ②、同时server.js同目录下创建一个act文件,用于存放html文件
③、在act里面创建一个index.html文件。(内容大家随便)。
④、在cmd终端运行server.js(不知道如何运行,可以看我以前写的“node.js简易上手”);
⑤、在浏览器中输入http://localhost:8080/index.html。就可以运行了。(如果在chrome浏览器运行有问题的朋友,可以在火狐浏览器打开)
二、代码分析。//加载模块
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path')
var server = http.createServer(function(req, res){
//1.__dirname是全局变量,可以直接获取。表示当前执行脚本所在的目录。(这里是E:\subject)
var staticPath = path.join(__dirname,'act'); //path.join方法,拼接目录地址
//2.staticPath拼接后的目录地址,为了跳到自己项目所在那个目录。(这里是E:\subject\act)
//3.req.url请求的链接(这里输出的是/index.html)
var pathObj = url.parse(req.url, true); //url.parse方法,解析请求的url,解决链接"\"和"/"的差异问题。
//4.解析后的req.url是个对象。
//5.从解析后的对象中获取到pathname(这里pathObj.pathname是/index.html)
var filePath = path.join(staticPath, pathObj.pathname); //path.join方法,拼接完整项目目录地址。
//6.fileContent拼接后的项目目录名字(这里是E:\subject\act\index.html)
//fs.readFileSync方法,同步读取文件信息
var fileContent = fs.readFileSync(filePath,'binary'); //读取拼接完整后的目录中的文件, 'binary'表示二进制方式读取
res.write(fileContent,'binary');
res.end();
});
server.listen(8080);
console.log('服务器已打开, 可以运行 这里要注意下的是
var' target='_blank'>http://localhost:8080');这里要注意下的是[code]var fileContent = fs.readFileSync(filePath,'binary'); fs.readFileSync()方法是同步读取文件数据,如果文件过大读取时间会稍长,会导致服务器开启时间过长。(下一篇会给大家分析异步获取文件数据,这样不会耽误进程)。
相关文章推荐
- 【node.js】搭建可访问静态文件的服务器②
- Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
- Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
- node.js搭建简单静态文件服务器
- 用Nodejs搭建服务器访问html、css、JS等静态资源文件
- 博文共赏:Node.js静态文件服务器实战
- 使用node搭建静态文件服务器
- Node.js WEB服务器静态文件托管
- 使用Node.js搭建静态资源服务器
- 菜鸟小白使用node.js搭建简单服务器(可请求图片,html,js,css,json等文件)
- nodejs搭建静态服务器 用Nodejs搭建服务器访问html、css、js等外部链接
- 微信小程序访问node.js接口服务器搭建教程
- 【深入浅出Node.js系列十】一个简单的静态文件合并服务器
- Node.js静态文件服务器
- 博文共赏:Node.js静态文件服务器实战
- Node.js学习笔记 01 搭建静态服务器
- Node.js静态文件服务器改进版
- Node.js静态文件服务器实战(接触nodejs开发中比较实用的部分技巧,获益匪浅)
- 微信小程序访问node.js接口服务器搭建教程
- Node.js 系列-搭建静态资源服务器