nodejs的安装及前后端交互流程

nodejs的安装

http://nodejs.cn/download/
尽量下载偶数的 稳定版 例12.0.0
奇数的是更新的 修正版
node -v 查看版本号v12.16.1 node Welcome to Node.js v12.16.1.
process 进程

NODEJS

不支持bom和dom

作用:写后台管理程序,与之类似php .net java
目标:数据服务,文件服务,web服务
优势:性能高,方便、入门难度低、大公司都在用(BAT)
劣势

  • 服务器提供的相对较少
  • 相对其他语言,能用的上的学习资料少
  • 对程序员的要求高了

前后端交互流程

大后端

用户->地址httpl$]请求) ->web服务器(收到)-> nodejs处理请求(返回静态、动态)->请求数据库服务(返回结果)>nodejs(接收)>node渲染页面->浏览器(接收页面,完成最终渲染)

大前端

用户-> http[s]请求-> web服务器(收到)-> nodejs处理请求(返回静态、动态)->请求数据库服务(返回结果)->nodejs(接收)->返回给前端(渲染)->浏览器(接收页面,完成最终渲染)

ctrl+f 页面内搜索
下载nodemon npm i nodemon -g不用每次都退出操作才能刷新
运行代码 nodemon a.js

综合练习:
//处理接口
//1.引入相应的原生模块、依赖
let http = require("http")
let fs = require("fs")
let url = require("url")
let querystring = require("querystring")
//2.实例化http对象(服务器对象)
let app = http.createServer((req,res)=>{
    //排除 /favicon.ico的请求
    if(req.url.indexOf("/favicon.ico") === -1){
        //需要判断要读取的是动态资源(接口api)还是静态资源
        if(req.url.indexOf("/api") !== -1){ //处理接口
            //处理地址栏的数据
            let urlObj = url.parse(req.url,true)
            console.log(urlObj.query)	
            let noAddressData = ""     //存放非地址栏的数据
            req.on("data",chunk=>{     //chunk代表抓取的一片数据,data事件内部会频繁的触发
                noAddressData += chunk
            })
            req.on("end",()=>{         //数据已经全部接受完毕
                console.log("非地址栏的数据:",querystring.parse(noAddressData))
            })
        }else{ //处理静态资源 /index.html
            try {
                let path = req.url === "/" ? "/index.html" : req.url;
                let html = fs.readFileSync("./www"+path)
                res.write(html)    //直接将html结果返回给浏览器
            } catch (error) {
                let html = fs.readFileSync("./www/nopage.html")
                res.write(html)    
            }
        }
    }
    res.end() 
})

//监听服务器
app.listen(3000)

猜你喜欢

转载自blog.csdn.net/qq_43539439/article/details/104764930