Nodejs 学习

简介: Nodejs 学习

文件读取

  1. 导入 fs模块
    const fs = require(‘fs’)
  2. 调用 fs.readFile 方法读取文件

参数:文件名, 编码格式,回调函数(err, data)

  • 如果读取成功,err 为 null
  • 如果读取失败, err 为 错误对象, data 为 undefined
  • fs.readFile(’./files/test.txt’, ‘utf8’, function(err, data){
    if(err) throw err;
    console.log(data);
    })

Promise 封装文件读取 fs 模块

const fs = require('fs');
let p = new Promise((resolve, reject) => {
    fs.readFile('./files/test.txt', 'utf8', (err, data) => {
        if(err) reject(err);
        resolve(data);
    });
});
p.then(value => {
    console.log(value.toString());
}, reason =>{
    console.log(reason);
})

文件写入

  1. 导入 fs 模块
  2. 调用 fs.writeFile() 方法

参数:写入文件名,写入的内容,回调函数

如果写入成功,err 为 null


写入失败,err 为错误对象


fa.writeFile(’./files/test.txt’, ‘write data test’, function(err){

if(err) return err.message;

console.log(‘write success!’)

})

路径问题和文件名与后缀

__dirname 表示当前文件所处的目录

引入 path 模块

const path = require('path')

path.join() 可以拼接路径

结合使用:../ 会抵消前面的路径

path.join(__dirname, './files/1.txt', ...,...)

获取文件名:

const fullName = path.basename('/a/b/c/d/index.html')
// fullName = 'index.html'

去掉后缀:

const nameWithoutExt = path.basename('/a/b/c/d/index.html', '.html')
// nameWithoutExt = 'index'

获取文件后缀:

const fileExt = path.extname('/a/b/c/d/index.html');
// fileExt = '.html'


http 模块创建服务器

使用 http 模块的 createServer() 函数创建 web 服务器实例

// 1.导入http模块
const http = require('http');
// 2. 创建 web 服务器实例
const server = http.createServer()
// 3. 为服务器绑定 request 事件,监听客户端请求
server.on('request', function(req, res){
          console.log('Someone visit my web server!')
          });
// 4. 启动服务器
server.listen(8080, function(){
    console.log('server running at http://127.0.0.1:8080');
})

req 请求对象

req 是客户端的请求对象,包含了与客户端相关的数据和属性

req.url 是客户端请求的地址

req.method 是客户端请求的 method 类型

res.end(数据) 方法,向客户端响应数据

const http = require('http');
const server = http.createServer();
server.on('request', function(req, res) => {
    const url = req.url;
         const method = req.method;
         const str = `你的请求 url 是${url}, 请求的类型是:${method}`;
    res.end(str);
});
server.listen(8080, funtion(){
  console.log('server running at http://127.0.0.1:8080');
})

349149ce6903413caf728b0f4e720b0e.png

中文乱码

设置响应头:

server.on('request', (req, res) => {
  // 定义一个字符串,包含中文的内容
  const str = `您请求的 URL 地址是 ${req.url},请求的 method 类型为 ${req.method}`
  //调用 res.setHeader() 方法,设置 Content-Type 响应头,解决中文乱码的问题
  res.setHeader('Content-Type', 'text/html; charset=utf-8')
  // res.end() 将内容响应给客户端
  res.end(str)
})

20dca940cb6b4f2da037a66ce303dda0.png

根据不同的 url 响应不同的 html 内容

自定义模块

express 创建服务器

express.static 提供静态资源

路由

模块化路由

中间件

局部中间件

全局中间件

解析表单数据

跨域问题

操作 mysql 数据库

身份认证

session

jwt

相关文章
|
6月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
46 0
|
6月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
145 0
|
1月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
64 3
|
3月前
|
JavaScript 前端开发 关系型数据库
如何学习 Node.js?
【8月更文挑战第4天】如何学习 Node.js?
37 3
|
2月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
42 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
|
6月前
|
Kubernetes 应用服务中间件 Docker
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
|
6月前
|
移动开发 JavaScript 前端开发
为了学习vue3,安装nvm进行node的多版本管理
为了学习vue3,安装nvm进行node的多版本管理
163 2
|
2月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
3月前
|
JavaScript 前端开发 API
node 学习方式
【8月更文挑战第12天】node 学习方式
42 4
|
3月前
|
JavaScript 算法 前端开发
学习 node.js 六 Markdown 转为 html,zlib
【8月更文挑战第19天】
26 0