nodejs 常见的内置模块

1)url模块

将请求字符串转换为对象

// let obj=url.parse(str);//将请求字符串转换为对象
// let obj=url.parse(str,true);//参数二为true ,将查询字符串转换为对象
// console.log(obj.protocol);//协议
// console.log(obj.hostname);//主机名
// console.log(obj.port);//端口号
// console.log(obj.pathname);//资源路径
// console.log(obj.query);//查询字符串
let {username,pwd}=url.parse(str,true).query;

// console.log(obj);
console.log(username,pwd);

2)querystring

将查询字符串---->对象

//查询字符串
// let str='uername=jack&pwd=123';
// let obj=qs.parse(str);

3)path

Join() 地址拼接
extname() 获取文件的后缀名
basename() 获取地址最后一个文件的名称
dirname() 上级目录地址
isAbsolute() 判断是否是绝对路径 true false
resolve() 将相对路径转换为绝对路径

静态资源:

路由配置后,客户端虽然可以访问不同的页面;但是页面里面的外部链接仍然无效,比如:link的外部css,script的src链接,image的src链接等都是无效的。
为什么这些资源是无效的?
我们一定不要认为,客户端请求了html或页面后,页面里面的外部链接就会自动请求得到;实际是,我们请求到html或页面后,浏览器在解析这个页面的过程中遇到外部链接,还会继续向服务器发请求,那么服务器就需要对这些请求进行处理(比如css,js,image等请求连接);这个处理的过程我们就可以认为是在处理静态资源。
静态资源的处理,其实和路由的配置非常相似,只不过静态资源都有指定的目录和特殊的后缀,简单处理如下:

 let ext = path.extname(req.url); //获取请求路径的后缀
    let basename = path.basename(req.url); //获取路径中文件的名称

    switch (ext) {
        case ".css":
            buf = fs.readFileSync(`./public/css/${basename}`);
            break;
        case ".js":
            buf = fs.readFileSync(`./public/js/${basename}`);
            break;
        case ".jpg":
        case ".png":
        case ".gif":
        case ".bmp":
            buf = fs.readFileSync(`./public/image/${basename}`);
            break;
}

网站开发模式

网站的开发方式,目前来看主要有两种

a)服务端渲染(SSR server-side rendering)
i.服务端渲染的内容不是静态页(.html),而是模板页(.php,.jsp,vue 使用模板语法进行页面渲染,把动态数据解析为静态的html)
ii.数据来源是服务端
b)前后端分离
i.前台负责写html静态页,使用ajax请求来渲染上面的数据
ii.后台负责提供接口

注意:如果是前端端分离,则src,href,action等链接,一定要写全地址,比如http://localhost:3000/css/index.css。
如果是服务端渲染,则src,href,actions等链接,需要写路由配置的配置项,比如:/about,/list等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值