跟着廖雪峰老师 初学node.js
程序员文章站
2022-07-08 20:21:03
...
node.js简单接触
nodeJS实现服务器端html返回,文件服务器
'use strict'; var test_1 = require('./test-1'); test_1('xiangzhipeng'); //同步异步读取文件 try{ var fs = require('fs'); // fs.readFile('test-img.png','UTF-8',function(err,data){ // if(err){ // console.info(err); // }else{ // console.info(typeof data); // } // }); //console.info(fs.readFileSync('test-img.png','UTF-8')); }catch(err){ console.info(err); }; console.info('------------','同步异步读取文件'); //写文件 var data1 = '我是使用Node.js 异步写出的文本'; var data2 = '我是使用Node.js 同步写出的文本'; // fs.writeFile('./write-test.txt',data1,function(err){ // if(err){ // console.info(err); // }else{ // console.info('ok'); // } // }); //fs.writeFileSync('write-test.txt',data2); console.info('------------','写文件'); //stat 文件详情 fs.stat('./write-test.txt',function(err,data){ if(err){ console.info(err) }else{ //console.info(data); console.info(data.birthtime) } }); console.info(fs.statSync('./write-test.txt').birthtime);//同步获取stat对象 //输入输出流 var rs = fs.createReadStream('./write-test.txt','UTF-8'); rs.on('data',function(chunk){ console.info('readStream:',chunk); }); rs.on('end',function(){ console.info('读取完毕'); }); var ws = fs.createWriteStream('./write-test.txt','UTF-8'); ws.write('我是使用writeStream写出的文本'); ws.write('写完了'); //pipe 输入输出一起进行 文件复制... rs = fs.createReadStream('./write-test.txt','UTF-8'); ws = fs.createWriteStream('./copy.txt','UTF-8'); rs.pipe(ws); //http模块 var http = require('http'); var server = http.createServer(function(req,resp){ console.info('获得HTTP请求的method和url',req.method+" "+req.url);// 获得HTTP请求的method和url: resp.writeHead(200,{'Content-type' : 'text/html'});// 将HTTP响应200写入response, 同时设置Content-Type: text/html: resp.end('<h1>Hello World</h1>');//将响应的内容写入response }); server.listen(8080);// 让服务器监听8080端口: console.info('Server is running at http://127.0.0.1:8080'); //url模块 var url = require('url'); //console.info(url.parse('http://user:pass@host.com:8080/path/to/file?query=string#hash')); //path模块 处理本地文件目录 var path = require('path'); var workDir = path.resolve('.');//获取工作空间目录 console.info(path.join(workDir,'pub','index.html'));
nodeJS实现服务器端html返回,文件服务器
'use strict' var fs = require('fs'), http = require('http'), url = require('url'), path = require('path'); //1.建立服务端口,提供访问,解析url 获取url中的文件目录及名称 //2.获取项目根目录,寻找到客户端需要的文件 //3.使用文件输入流读取文件 //4.使用pipe将输入流合并到response返回 //获取当前服务器中项目的路径 var rootDir = path.resolve(process.argv[2] || '.'); //建立服务 var server = http.createServer(function(request,response){ //获取文件目录 var pathname = url.parse(request.url).pathname; //生成服务器端文件路径 var filePath = path.join(rootDir,pathname); fs.stat(filePath,function(err,stats){ if(!err && stats.isFile()){ //如果读取到了,并且是一个文件,传入文件输入流 response.writeHead(200);//响应发送200状态码 console.info(filePath); fs.createReadStream(filePath,'UTF-8').pipe(response); }else if(!err && stats.isDirectory()){ if(fs.existsSync('index.html')){ fs.createReadStream(filePath+'index.html').pipe(response); }else if(fs.existsSync('default.html')){ fs.createReadStream(filePath+'default.html').pipe(response); } }else{//否则出错 文件不存在 response.writeHead(404);//文件不存在,404响应 response.end('404 not Found'); } }); }); //监听8080端口 server.listen(8080); console.info('Server is running');
上一篇: 自制让dom元素抖动的插件方法
下一篇: 关于遇到兼容Safari的一些坑