Fork me on Gitee

node中的路由

路由:根据用户请求路径的不同返回不同的数据或者页面
前端路由: 根据用户请求路径的不同渲染不同的数据 一般用来做单页面开发 SPA
路径发生改变,页面会发生渲染但是页面不会跳转 不会发送到后端的。
后端路由:根据用户请求路径的不同返回不同的数据或者html页面 一般情况下后端路由都用来做接口。会接收到请求的路径。
每跳转到不同的URL,都是重新访问服务端,然后服务端返回页面。
需要注意的是,当需要访问的页面使用jQuery书写js时,需要将req.url路径变为jquery路径,当需要访问的是多张图片时,修改路径固然有用,但是解决不了多张图片的问题,此时需要判断,判断条件为正则/\/img\/.+\.png/.test(req.url)【/img/1.png、/img/2.png】,这样所有图片就可以显示出来了,不会请求不到,但是,现在是get获取,get后可以添加参数的,如果在路径后添加name=zhangsan&age=18/这些参数的话,页面请求不到,这时看到小窗口的路径在js中并找不到,因为我们所书写的路径是请求的路径,小黑窗返回的是所有的路径,包括了请求的参数,所以,将所有的req.url变成pathname,因为pathname是路由的核心,为请求的路径,query是请求的参数。
ajax({
url:http:localhost:8080/login
})


req.url == /login

{
status:true,
info:"成功"
}

http:localhost:8080/fsDeom/index.json

http:localhost:8080/capi/product/qiuxie/open/homefirst

server 后端路由案例 端口号为9000时,路径为/一个页面,路径为/list一个页面
const http = require("http");
const fs = require("fs");
http.createServer((req,res)=>{
if(req.url == "/"){
//返回index.html

fs.readFile("./index.html",(err,data)=>{
res.end(data);
})
}else if(req.url == "/list"){
//返回list.html

fs.readFile("./list.html",(err,data)=>{
res.end(data);
})
}else if(req.url == "/goodsList"){ //假如说访问这个后端接口,返回一个数据。这个路径只能返回字符串
res.writeHead(200,{"content-type":"application/json;charset=utf8"});
// 状态码为200时,返回数据,返回json文件,为中文。
res.end(JSON.stringify({
status:true,
info:"请求成功"
}))
}
}).listen(9000) //端口号,后端创建的额,所以后端不用接收。


简写node命令:
先npm init 初始化json

 


在package.json script键里写上想要的命令,然后node里
npm run dev(自己自定义的key)。如果是更改在start里,直接npm start就可以。

url的组成部分
http:80 8080
https:443
协议https
域名:www.baidu.com
端口号 80
请求的路径 /s (就是pathname,所有路由的核心,围绕pathname来的)
请求的参数(query。)wd=%E5%8D%83%E9%94%8B%E5%9F%B9%E8%AE%AD&rsv_spt=1&rsv_iqid=0x9ea1e1150000b088&issp=1&f=3&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=1&rsv_sug1=1&rsv_sug7=001&rsv_sug2=1&rsp=0&rsv_sug9=es_2_1&rsv_sug4=1016&rsv_sug=9
请求的页面

posted @ 2019-01-22 08:19  修修改改  阅读(631)  评论(0编辑  收藏  举报