关于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:'男'})

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

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据