node api

乐正心水
2023-12-01
//url.js
const http = require("http");

//write写入的永远是文本,只是浏览器解析成了html页面
const server = http.createServer(function(req,res){
    res.writeHead(200,{"Content-type":"text/html;charset='UTF-8"});
    res.write("<h1>A主题</h1>");
    res.write("<h2>B主题</h2>");
    res.write("<h3>C主题</h3>");
    res.end("hello");
}).listen(3032,function(){
    console.log(3032);
});



// req.js
var http =require('http');
//URL模块用来处理URL
var url = require("url");
//URL问号之后的字符:称之为参数
//URL井号之后的字符:称之为锚记
var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    //url获取我们依赖的对象还是req.url
    //url解析我们依赖的是URL.path

    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    console.log(req.url);  // /?name=%22lmz%22

    //帮我们把传入的URL转换为(拆分为)不同的模块
    console.log(url.parse(req.url));
    // Url {
    //     protocol: null,
    //         slashes: null,
    //         auth: null,
    //         host: null,
    //         port: null,
    //         hostname: null,
    //         hash: null,
    //         search: '?name=%22lmz%22',
    //         query: 'name=%22lmz%22',
    //         pathname: '/',
    //         path: '/?name=%22lmz%22',
    //         href: '/?name=%22lmz%22' }
    console.log(url.parse(req.url).query);//'name=lmz&lm=34'
    res.end("Hello World~!");
});
server.listen(3000,"127.0.0.1");

//03.req.js
var http =require('http');
var url = require("url");//处理URL

var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    //URL模块只能负责获取,我们依赖的对象还是req.url
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    //帮我们把传入的URL转换为(拆分为)不同的模块
    //注意url.parse里面的第二个参数:把query字符串处理成一个对象
    //url.parse(req.url,true)
    console.log(url.parse(req.url,true).query);
    // { name: 'think' }
    console.log(url.parse(req.url,true).query.name);
    // think
    
    res.end("Hello World~!");
});

server.listen(3000,"127.0.0.1");


//4.req.js
var http =require('http');
var url = require("url");//处理URL

var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    //URL模块只能负责获取,我们依赖的对象还是req.url
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    //可以理解为默认为false
    var pathname = url.parse(req.url,true).query;//增加true后,返回的就是咱们传入的参数名称和参数值
    console.log(pathname.name);
    console.log(pathname.age);
    console.log(pathname.sex);
    res.end("Hello World~!");
});

server.listen(3000,"127.0.0.1");


//05 form.js
//这里请结合form.html一起看明白
var http =require('http');
var url = require("url");//处理URL
var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    /*
        由于获取的是请求的URL,而post请求的参数不会出现在URL中,所以获取的时候为undefined
    */

    //URL模块只能负责获取,我们依赖的对象还是req.url
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    //可以理解为默认为false
    var pathname = url.parse(req.url,true).query;//增加true后,返回的就是咱们传入的参数名称和参数值
    var username = pathname.username;
    var password = pathname.password;
    var sex = pathname.sex;
    res.end("表单提交的数据为:用户名[" + username + "],密码:[" + password + "]" + ",性别:[" + sex + "]");
});
server.listen(3000,"127.0.0.1");

//06. router.js
/*
    /student/1234567890
    /teacher/123456
*/

var http = require("http");
var server = http.createServer(function(req,res){
    var currentUrl = req.url;
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    if(currentUrl.substr(0,9) == "/student/"){//表示student开头
        //substr: 如果传入一个参数:substr(num)  //截取num之后的字符串
        //        如果传入两个参数:substr(num1,num2) 截取到num1和num2之间的字符串
        var studentId = currentUrl.substr(9);
        //这里的正则: /^\d{10}$/ 表示十个数字
        if(/^\d{10}$/.test(studentId)){
            res.end("您要查询的学生信息ID为:" + studentId);
        }else{
            res.end("您要查询的学生信息未找到");
        }
    }else if(currentUrl.substr(0,9) == "/teacher/"){//表示teacher开头
        //console.log("teacher loading...");
        var teacherId = currentUrl.substr(9);
        if(/^\d{6}$/.test(teacherId)){
            res.end("您要查询的教师信息工号为:" + teacherId);
        }else{
            res.end("您要查询的教师信息未找到");
        }
    }else{//单独对不存在的模块处理
        console.log("not found loading...");
        res.end("请检查你的输入是否有问题,反正我是不认识的~!");
    }
});
server.listen(3000,"127.0.0.1");


//07 route
/*
    /student/1234567890
    /teacher/123456
*/

var http = require("http");

var server = http.createServer(function(req,res){
    var currentUrl = req.url;
    var tipsInfo = "";
    res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
    if(currentUrl.substr(0,9) == "/student/"){//表示student开头

        var studentId = currentUrl.substr(9);
        if(/^\d{10}$/.test(studentId)){
            tipsInfo = "您要查询的学生信息ID为:" + studentId;
        }else{
            tipsInfo = "您要查询的学生信息未找到";
        }
    }else if(currentUrl.substr(0,9) == "/teacher/"){//表示teacher开头

        var teacherId = currentUrl.substr(9);
        if(/^\d{6}$/.test(teacherId)){
            tipsInfo = "您要查询的教师信息工号为:" + teacherId;
        }else{
            tipsInfo = "您要查询的教师信息未找到";
        }
    }else{//单独对不存在的模块处理
        tipsInfo = "请检查你的输入是否有问题,反正我是不认识的~!";
    }
    res.end(tipsInfo);
});
server.listen(3000,"127.0.0.1");

//08 fs.js
var http =require('http');
var fs = require("fs");//读取文件,fileSystem
var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    //创建文件夹属于异步操作,所以在这里需要注意
    //第一个参数是:创建的文件名
    fs.mkdir("./images3",function(err){
        if(err){
            throw err;
        }
        res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
        res.end("创建完毕");
    });//创建文件夹
});
server.listen(3000,"127.0.0.1");

//09. 
var http =require('http');
var fs = require("fs");//读取文件,fileSystem
var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
    //fs.stat(path, [callback(err, stats)])
    //返回的stats包含的数据:
    // {
    //
    //     dev : 0 ,
    //
    //         mode : 33206 ,
    //
    //     nlink : 1 ,
    //
    //     uid : 0 ,
    //
    //     gid : 0 ,
    //
    //     rdev : 0 ,
    //
    //     ino : 0 ,
    //
    //     size : 378(字节) ,
    //
    //     atime : Tue Jun 10 2014 13:57:13 GMT +0800 <中国标准时间> ,
    //
    //     mtime : Tue Jun 13 2014 09:48:31 GMT +0800 <中国标准时间> ,
    //
    //     ctime : Tue Jun 10 2014 13:57:13 GMT +0800 <中国标准时间>
    //
    // }
    fs.stat("./08_fs.js",function(err,data){
        console.log(data.isDirectory());//判断是否是文件夹
        //data.isDirectory如果返回时true表示加载的是文件夹,反之表示不是
    });
});
server.listen(3000,"127.0.0.1");


//10 fs.js
var http =require('http');
var fs = require("fs");//读取文件,fileSystem

var server = http.createServer(function(req,res){
    if(req.url == "/favicon.ico"){
        return;
    }
   
    var wjj = [];
    //readdir方法用于读取目录,返回一个所包含的文件和子目录的数组。
    //[ '1.jpg', '2.jpg', '3.jpg', 'afile', 'bFile' ]
    fs.readdir("./img",function(err,files){
        //文件有N个,所以可以for循环出来

        console.log(files);
        //[ '1.jpg', '2.jpg', '3.jpg', 'afile', 'bFile' ]


        for(let i = 0;i < files.length;i++){//ES6的let声明不受闭包影响
            let currFilename = files[i]
            fs.stat("./img/" + currFilename,function(err,stats){
                if(err){
                    throw err;
                }
                if(stats.isDirectory()){
                    wjj.push(currFilename);
                }
                console.log(wjj);
            })
        }
    })
    


});

server.listen(3000,"127.0.0.1");



相关阅读

相关文章

相关问答