nodejs入门学习第三天

    技术2024-10-02  62

    1-了解端口

    一台电脑可以部署多个服务器,例如: Apache软件部署的服务器我们自己用http模块搭建的服务器mysql数据库服务器 之后我们就能通过ip地址来找到这个电脑(localhost或者127.0.0.1)通过端口来找到不同的服务器

    注意:

    默认的http端口号是80端口,所有Apache配置这个web服务器同的就是80端口默认的80端口可以不写服务器端口不能乱写,很多端口已经被其他的服务器给占用了

    2-web服务器读取网页返回给用户

    //1.导入模块 const fs = require("fs") const path = require("path") const http = require("http") //2.创建服务器 const server = http.createServer((requext, response) => { //3.读文件 //3.1拼接读取文件的路径 const fullPath = path.join(__dirname, "web", "index1.html") //3.2读取文件内容 fs.readFile(fullPath, "utf8", (err, data) => { if (err == null) { //读取成功后返回给用户页面 response.end(data) } else { response.end("404") } }) }) //4.开启服务器 server.listen(4399, () => { console.log("成功") })

    3-实现静态资源服务器

    //实现静态资源服务器 //要求:用户访问什么资源就返回什么资源,没有找到就返回404 //1.导入模块 const fs = require("fs") const path = require("path") const http = require("http") //2.创建服务器 const server = http.createServer((request, response) => { //3.设置返回给用户的内容 //3.1首先要知道用户请求的是哪个页面 //requext是请求,里面有你要请求的资源名字 //3.2 拼接要读取的文件的路径 const fullPath = path.join(__dirname, "web", request.url) //3.3 读文件 fs.readFile(fullPath, (err, data) => { if (err == null) { response.end(data) } else { response.end("404") } }) }) //4.开启服务器 server.listen(4399, () => { console.log("成功") })

    04-nodejs接收get或post传递的参数

    /** * 前端传参: * get传参:拼接在url上面 * http://127.0.0.1:4399/joke?id=&&username=admin * post传参:不是拼接在url上面 * 在请求体重传递 */ //写一个服务器(后端接口) //1.导入模块 const http = require("http") const fs = require("fs") const path = require("path") const url = require("url") //2.创建服务器 const server = http.createServer((req, res) => { //req是请求的对象,req.url能拿到请求的url中?以及?后面的内容 console.log(req.url) //可以拿到通过req.url传递的参数 //但是要做字符串的处理(不适合),可以直接用url模块来处理 //url.parse()方法接收一个字符串,解析,然后返回一个url对象 //第一个参数:要处理的url //第二个参数:如果是true的话就返回一个对象 //这个对象中有一个query属性,他也是一个对象,这个属性里面有get传递的参数 //那就可以根据这个接收的到id,去数据库中获取这个id对应的所有信息,返回给调用者 let = urlObj = url.parse(req.url, true) console.log(urlObj) console.log(urlObj.query) res.end(JSON.stringify(urlObj.query)) //只能返回字符串 }) //3.开启服务器 server.listen(4399, () => { console.log("成功开启") }) /** * 前端传参: * get传参:拼接在url上面 * http://127.0.0.1:4399/joke?id=&&username=admin * post传参:不是拼接在url上面 * 在请求体重传递 */ /** * get数据是存在url中的,相对较小,req.url拿到 * post数据是存在请求体中的,相对而言较大,那传给后端的话,就不会一次全传过去,他会把数据分割成多个小块,一块一块的传 * 后端一块一块的接收 * 1.首先要有个容器 * 2.给req对象一个data事件(这个事件会执行很多次)这个事件会把小块的数据拼接起来 * 3.给req对象一个end事件(只会执行一次)表示数据传递完了 * 4.处理传递过来的数据,queryString.parse() */ //1.导入模块 const http = require("http") const querystring = require("querystring") //2.创建服务器 const server = http.createServer((req, res) => { // console.log(req.url) //req是请求对象 //因为这里是post方式传递的参数,不是在url中的,所有用req.url不行 //1.要有个容器 //2.给req对象一个data事件 //3.给req对象一个end事件 let postData = ""; //容器 req.on("data", (chunk) => { postData += chunk }) //给data事件,事件处理程序,参数是当前这次传递的一块内容 req.on("end", () => { // console.log(postData)//username=admin&postword=123456 //解析这个传递的postData //用queryString let postObj = querystring.parse(postData) console.log(postObj) //{username:'admin',postword:'123456'} //就可以拿到处理后的数据去数据库对比 }) //表示事件处理完毕, res.end("aaa") }) //3.开启服务器 server.listen(4399, () => { console.log("成功开启") })
    Processed: 0.011, SQL: 12