http模块

特性:

  1. 单线程:减少了内存开销
  2. 非阻塞I/O, 不会傻等I/O语句结束,而是会执行后边的语句
  3. 事件机制,时间环:不管是新用户的请求,还是老用户 I/O完成,都将以事件方式加入时间环,等待调度
  • Nodejs没有根目录的概念,也没有web容器,只有路由设置的路径文件才能访问
  • URL 是通过Node的顶层路由设计,呈递某一个静态文件的
  • path.extname(pathname) 获取后缀

response

// createServer:
var server = http.createServer(function(req, res ){
    if(req.url=='/'){
        console.log('服务器接收到了请求')
        // .writeHead 响应头
        //1. res.writeHead(200, {"Content-Type":"text/plain; charset=UTF8})
        //2. res.setHeader("Content-Type", "text/html");
        res.write('

这是一个标题

'); res.end(); // 必须有end,不然服务器不停止 // res.end('这里是返回页面的内容'); } }).listen(3000, 'localhost' )

request

  • 最关键的就是req.url属性,表示用户的请求URL地址
// 识别url
var url= require('url');
var path = url.parse(req.url)
var path = url.parse(req.url, true ) // .parse 把url分成好几部分组成的对象

href:全部
protocol: http:
slashes: 是否有 斜线
host:主机和端口
pathname:路径
search:问号以及以后的内容
path:pathname+search

遍历文件夹

// 遍历album里边左右的文件、文件夹
fs.readdir('./album/', function(err,files){
    //files是一个存放文件名的数组
    var wenjianjia = [];
    // 迭代器就是强行把异步变成同步
    (function iterator(i){
        if(i == files.length){
            return;
        }
        fs.stat('./album/' + files[i], function(err,stats){
            // 检测是不是文件夹 
            if(stats.isDirectory()){
                wenjianjia.push(files[i])
            }
            iterator(i+1)
        })
    })(0)
})

fs

fs.mkdir // 创建文件夹
fs.rmdir // 删除文件夹
fs.stat(path,callback); // 返回文件或文件夹的状态
fs.readdir // 读取文件夹里的所有文件
fs.readFile // 读取文件 

你可能感兴趣的:(http模块)