nodejs 中 fs模块, path路径模块, http模块(搭建服务器)

文章包含以下内容:

1.nodejs是什么?

2.什么是模块化?

3.nodejs的三个核心模块

 1.nodejs是什么?

  概念:Node.js 是一个构建于 谷歌 V8引擎之上的一个Javascript 运行环境

           (  Node一个运行环境,作用是让js拥有开发服务端的功能)

作用 : 使用js语言开发服务器

查看是否安装了Node.js环境:

(1)win+r打开终端,输入cmd,回车,

(2)在终端,输入 node -v  有版本号,说明安装成功

一旦安装了node,则会自动一并安装npm (npm -v)

 

 2.什么是模块化?

模块化:把一个大的文件拆分成很多个小文件,用特定的语法将各个文件(模块)组合到一起

模块化开发:一个js文件引入到另一个文件

模块化开发好处

(1)按需引入,节约资源

(2)避免变量污染

(3)实现业务的分离

 3.nodejs的三个核心模块

模块的导入和导出:使用 module.exports={} 导出 ,使用 require() 导入

3.1 fs模块

1. readfile读取文件

(1)导入文件模块

        语法: const 对象 = require('模块名')

(2)读取文件

         语法:对象.readFile(参数1,参数2,参数3)


 参数1:文件路径
 参数2:编码格式 (可选参数,默认为buffer二进制)
 参数3:读取回调操作(异步操作)
     err:如果读取成功,err为null,  否则读取失败(一般文件路径错误或者找不到文件)
     data:读取到的数据

// 1.导入
const fs = require('fs')

// 2.使用(文件路径,编码(默认二进制,中文:utf8),参数)
fs.readFile('./data/ccc.txt', 'utf-8', (err, data) => {
    if (err) {
        console.log(err)
        throw err //告诉代码错误的位置
    } else {
        console.log(data)
    }
})

运行如下:

2. writeFile写入文件

(1)导入文件模块

        语法: const 对象 = require('模块名')

(2)读取文件

         语法:对象.writeFile(参数1,参数2,参数3,参数3)


 参数1:文件路径

 参数2:要写入的数据
 参数3:编码格式 (可选参数,默认为buffer二进制)
 参数4:读取回调操作(异步操作)
     err:如果读取成功,err为null,  否则读取失败(一般文件路径错误或者找不到文件)
     data:读取到的数据

//1.导入模块
const fs = require('fs')

//2.使用模块
fs.writeFile('./data/ddd.txt', '写入模块的代码', 'utf-8', (err) => {
    if (err) {
        console.log(err);
    } else {
        console.log('写入成功');
    }
})

运行如下:

3.2 path路径模块

(1)导入文件模块

        语法: const 对象 = require('模块名')

(2)使用文件

1.获取一个文件的拓展名

不关心此路径文件在不在, 就是处理这个字符串。 获取.后面的部分可以知道这个文件格式   ( 包含 . )

console.log(path.extname('aaa.html'))
console.log(path.extname('aaa.css'))
console.log(path.extname('./data/111.png'))

2.拼接相对路径, 使用join方法

把多个字符串按照路径的方式拼接起来

console.log(path.join('aaa', 'bbb'))

3.拼接绝对路径

默认从磁盘根目录开始拼接出完整的路径

console.log(path.resolve('aaa.html'))

4.获取当前文件所在的绝对路径

console.log(__dirname)

拓展__dirname和path.join()可以一起应用拼接出完整的路径,相当于path.resolve()

console.log(path.join(__dirname, 'bbb'))
console.log(path.resolve('bbb'))

以上运行结果如下:

 3.3 http模块(搭建服务器)

(1)导入文件模块

        语法: const 对象 = require('模块名')

(2)创建服务器

        语法:let 服务器 = 对象.createServer((req, res) => { 

     })

        参数:回调函数
             req: request 客户端请求对象
             res:response 服务端响应对象

(3)启动服务器

       语法:服务器.listen(3000, () => {

               console.log('服务器开启成功')

              })

第一个参数:端口号  一般1000-60000之间
   第二个参数:ip地址  默认不写 就是本地ip 
   第三个参数:成功回调

//导入文件模块
const http = require('http')

// 创建服务器
let app = http.createServer((req, res) => {
    console.log(req.url, decodeURI(req.url));
})

// 开启服务器
app.listen(3000, () => {
    console.log('服务器开启成功')
})

http(服务器)根据不同请求响应不同数据

 需求:

如果请求路径是/index ,响应  index  

如果请求路径是/login,响应 登录页

 res.writeHead(200, {
            'Content-Type': 'text/plain;charset=utf-8'
        })

 设置响应头解决中文乱码问题: 响应头作用:告诉浏览器我返回给你的数据是什么类型
 参数1:状态码
 参数2:响应头 
        

(代码和运行结果如下)

// 引入http文件模块
const http = require('http')

// 创建服务器
const app = http.createServer((req, res) => {

    if (req.url === '/index') {
        res.writeHead(200, {
            'Content-Type': 'text/plain;charset=utf-8'
        })
        res.end('index')
    } else if (req.url === '/login') {
        res.writeHead(200, {
            'Content-Type': 'text/plain;charset=utf-8'
        })
        res.end(JSON.stringify({ name: 'xiao', age: 18 }))
    } else {
        res.end('not found')
    }

})

// 开启服务器
app.listen(3000, () => {
    console.log('服务器开启成功');
})

 结果:(对于代码中的res.end()里面的内容

图1:

图2:

 

图3:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值