Node.js(2)

一、体验node

        创建server.js文件 从中输出console.log()可以从git中查阅

二、启动服务器     

        如何启动一个服务  本地启动一个服务

        当前的电脑就是一个默认的本地服务器 :挂载很多的服务  后端代码的服务器

        端口:计算机与外界通讯交流信息的接口

        Node.js 非常遵循模块化编程

        webpack.config.js 路径 path模块

        启动服务器 node   http模块

        引入模块

const http = require('http') //引入模块
//requset 接受 前端发送过来的内容
//response 返回数据时用的参数
const server = http.createServer((req.res)=>{
    res.write('hello')     //给前端发送的值
    res.end()            //或可以直接写成res.end('hello')
})
server.listen(8080) //端口号

三、处理静态文件

        需要引入相应的模块 fs 模块

        写入静态文件 fs.writefile(路径,回调函数)

        读取静态文件fs.readfile(路径,回调函数)

        一般情况下回调函数写作(err,data){}err:表示是否存在错误的情况,data即为读取的内容

const fs = require("fs")    //引入fs 模块
//写入内容
//给前端写入一个hello world
//.writeFile(路径,写入内容,回调函数) 回调函数:写入后执行
//在服务器开发过程中 ,同级目录下 ./
fs.writeFile("./index.txt", "hello world", (err) => {  
    if (err) { //err 返回错误信息
        console.log("写入失败")
    }
        console.log("成功")
})


//读取内容
// .readFile(路径,回调函数)
// fs.readFile("./index.txt", (err, data) => {
//     //data 读取内容
//     if (err) {
//         console.log('读取文件出错')
//     }
//     //<Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>  二进制码 
//     console.log(data.toString())   //转化为字符串
// })

四、如何在服务端打开静态文件

        1.启动服务器

        2.读取静态文件

const http = require ('http')
const fs = require ('fs')
//案例使用wwww文件夹下的index.html文件为静态文件
http.createServe((req.res)=>{
    fs.readfile('./www${req.url}',(err.data)=>{  //req.url表述前端传输过来的地址
        if(err){
            res.end('写入失败')  //err为true时则带表有错误则给前端传输写入错误
        }
        else{
            res.end(data)   //否则写入数据
        }
    })
}).listen(8088)  //简写启动服务器

五、获取get请求中的数据

        get属于明文转码:参数都是拼接在api地址后边的,

        例如写一个/login接口其中传输过来的有user=wangyi  upas=123

        则地址参数为 /login?username=wangyi&upass=123

        获取api地址参数

        url='/login'

        par={username:wangyi,upass:123}

        可以使用url模块来解析其中的url以及par

//案例  /login?username=wangyi&upass=123
const http=require('http')
const url = require('url')
http.createServer((req.res)=>{
    let {pathname,query}=url.pares(req.url)
    //其中pathname === /login
    //query === {username:wangyi,upass:123}  传输过来的为对象
})

六、获取post传过来的参数

        post传过来的req.url仅仅为端口地址

        若接收post接口传输过来的数据,则需要模块 quertString

        因为post数据是分段传输过来的,则需要增加监听事件

       .on为增加监听事件

const http=require('http')
const queryString = require('queryString')
http.createrServer((req.res)=>{
    let arr=[]   //创建空的数组
    req.on('data'data=>{
        arr.push(data)   //监听data 传输数据的情况,将传输过来的数据加到数组arr中
    })
    req.on('end',()=>{
        let buffer = Buffer.concat(arr) //将ARR数组的数据转化为buffer数据
        let result = queryString(buffer.tostring()) //解析将buffer数据转化为string的字】值
        //获取到的resule即为获取的值得对象
    })  
}).listen(8088)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值