2020-11-12 nodejs 的常用概念和常用的函数

一,http模块下的方法

var server = require("http")
var fs = require("fs")

let  app = server.createServer(function(req,res) {
    res.setHeader("Content-Type","text/html;chartset=utf8")
    //请求头消息 请求和实体对应的MIME信息  大类型是文本小类型是html 编码格式
    res.writeHead(404,{'Content-Type':'text/html',"chartset":"utf8"})//MIME
    //404是状态码  文件的有无 不是状态码决定的
    //前端的数据是放在req里面的
    //后端向前端发送的数据用res
    //req 和res 里面有很多的方法和属性
        console.log(1111);
    if(req.url == "/index.html"){
    //re.url表示的是端口号后面的所有的字符串
           fs.readFile("11.html",(err,data)=>{
              res.end(data)
          })
   }
   
   else if(req.url =="/img/1.jpg") {
    fs.readFile("./img/1.jpg",(err,data)=>{
        res.end(data)
    })
          
    }

    else if (req.url =="/img/二哈.jpg") {
        fs.readFile("./img/二哈.jpg",(err,data)=>{
            res.end(data)
        })
    }
    else if (req.url =="/img/3.jpg") {
        fs.readFile("./img/3.jpg",(err,data)=>{
            res.end(data)
        })
    }
    else if (req.url =="666") {
            res.writeHead(404,{'Content-Type':'text/html',"chartset":"utf8"})//MIME
            req.write("<html><body><h>你好</h></body></html>")
            //也可以分开写入  但是你必须加res.end 表示发送完毕  也可以直接写res.end参数里
            res.end()
      
    }



})

app.listen(8081)

1 当程序运行得时候 服务器挂起 用户通过ip地址和程序入口port 进入服务器对应得函数就会被调用

2ip就是每个计算机都有得唯一身份 就像每个人都有唯一得身份证一样 计算机得程序都有对应得io口 port会找到对应得程序入口

3回调函数调用时会传2个对象进来:HTTPRequestMessage(req) HTTPResponseMessage(res)req主要就是前端发送过来的信 res主要就是后端给前端返回的数据 req.url 代表了网址端口号后面的所有字符串
req.method 代表了网络传输数据的方式

二,文件模块

var http = require("http")
var fs = require("fs");
const { dirname } = require("path");

let  app = http.createServer((req,res)=>{
       console.log(__dirname,__filename);
       //__dirname 是操作的window 得到是 目录 的绝对路径
       //__filename 是得到的 文件 的绝对路径

}).listen(8888)

fs.readFile(__dirname+"/01.txt",(err,date)=>{
    //readFile是异步的方法 不会阻塞线程
    //只要文件读取完毕就会执行 那个文件小一般会先返回 
    console.log(date.toString());
})

var str = "66666666"
fs.writeFile(__dirname+"/01.txt",str,function(err) {
    //写入文件
    //这样的话 会将文件的内容直接替换掉
    console.log(err);
})


// var fs = require("fs")
// var str = "讲完就下课"
// var path = __dirname + "/src/index.html"
// fs.writeFile(path, str,{flag:"a+"},(err) => {
    //加个参数就不会替换 而是追加了
// 	console.log(err)
// })

fs.appendFile(__dirname+"/01.txt","我是appendfile追加的",(er)=>{
    //追加文件
    console.log(er);
})

fs.unlink(__dirname+"/02.txt",(errr)=>{
    //删除文件
    console.log(errr);
})

//创建目录
fs.mkdir(__dirname+"/newfile",(er2)=>{
    //只可以在有的目录下创建一个   不可以多次创建没有的
    console.log(er2);
})

var old = __dirname+"/03.txt"
var newad = __dirname+"/newfile/03.txt"
fs.rename(old,newad,(es)=>{
    //移动文件和目录可以更改名字的
    console.log(es);
})


fs.readdir(__dirname,(err8,filess)=>{
    //读取文件下的所有文件 和文件夹名字  得到是数组
    console.log(filess);
})

fs.stat(__dirname,(err5,info)=>{
    //检测是不是文件
    console.log(info.isDirectory());
})


//修改文件信息
// var fs=require("fs")
// fs.utimes(__dirname+"/src/a.txt",new Date(),new Date(),(err)=>{
// 	console.log(6666)
// })```

# //nodejs  你是js框架   也不是代码 而是js的一个运行的环境 它的上层js是单线程的语言 下层是c/和c++ 所以js代码借助底层语言提供的接口 所以 可以实现多线程   nodejs特点是模块化    开源的  非阻塞io接口  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值