欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

跟着廖雪峰老师 初学node.js

程序员文章站 2022-07-08 20:21:03
...
node.js简单接触
'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');
相关标签: nodeJS