乐趣区

关于node.js:复习nodejs-挂屏笔记

模块化

模块分类:

内置模块,自定义模块 (须要补全门路),第三方模块
require(‘ 加载模块时会执行被加载的代码 ’)
nodejs 模块化具备模块作用域,不能间接拜访被引入模块内的变量
自定义模块中有 module 对象, 可通过 module.exports 能够向外共享成员
自定义模块中有 exports 对象,默认和 module.exports 指向同一对象,
require() 失去的永远是 module.exports

commonjs 标准:

每个模块外部,module 变量代表以后模块
module 变量是一个对象,它的 expor 属性(即 module.exports) 是对外的接口。
require 一个模块,其实是加载该模块的 module.expoorts 属性。

三个内置模块

file 模块

载入模块

let fs=require('fs')

用来读取指定文件中的内容

fs.readFile('./test.text1','utf8',(err,satastr)=>{console.log(satastr)})

用来向指定的文件中写入内容

fs.wirteFile('./file.txt','要写入的 str','能够省略,默认 utf8',(err)=>{})
path 模块

载入模块

let path=requeire('path')

文件所在的门路

console.log(__dirname)

门路拼接

path.join('url 片段 1','URL 片段 2...')

残缺的文件名

path.basename(fpath)

去掉扩展名的文件名

path.basename(fpath,'.html')

文件的扩展名

path.extname(fpath)
http 模块

载入模块

let http=require('http')

创立实例

let server=http.createServer()

为服务器实例绑定 request 事件,监听客户端的申请

server.on('request',function(req,res){
    // 客户端申请的 url 地址
    console.log(req.url)
    // 客户端申请的类型
    console.log(req.method)
    // 设置响应头: 示例为解决返回中文编码问题
    res.setHeader('Content-Type','text/html:charset=utf-8')
    // 向客户端返回一些内容并完结本次申请
    res.end('欢送拜访')
})

启动服务器

server.listen(80,()=>{console.log('服务器启动了:http://127.0.0.1')})

nodemon

主动重启服务,开发期间批改了代码不须要手动重启

npm install -gnodemon

应用 nodemon filename.js 命令代替 node File.js 命令来启动服务

express

基于 nodejs,疾速,凋谢,极简的 web 开发框架(基于 http 模块)

npm i express@4.17.1
创立并启动一个服务

导入 express

const express = require('express')

创立服务器实例

const app = express()

监听 get 申请

app.get('/user/:id',(req,res)=>{})

监听 post 申请

app.post('/user',(req,res)=>{})

调用 app.listen(端口号,启动胜利后的回调函数)启动服务

app.listen(80,()=>{})
req 申请体与 res 响应体

获取 url 前面用问号拼接的参数,默认是个空对象

console.log(req.query)

获取 url 前面的动静参数(冒号占位),如:127.0.0.1//user/22145

console.log(req.params)

常见申请体内容格局,可间接通过已有中间件后获取
json 格局要通过中间件app.use(express.json())
url-encoded 格局要通过中间件app.use(ecpress.urlexcoded({extended:false}))

console.log(req.body)

可通过 data,end 事件获取其余类型数据,数据量大时可能会触发屡次 data,每次获取残缺数据的一部分

req.on('data',(chunk)=>{console.log('chunk 是本次承受的数据')})
req.on('end',()=>{console.log('数据接管实现了')})

内置 querystring 模块,用来解决查问字符串,通过这个模块的 parse()函数,能够把查问字符串解析成对象格局

const body=require('querystring').parse('str')

响应内容

res.send({name:'悟空',age:18,gender:'男'})

来活了,今天持续码。。。。。

退出移动版