NodeJs零基础教程(三)

本次讲解express框架的使用

express的下载

npm install express --save

express的使用

//引入express模块
const express = require("express")
//将express函数赋值给变量,便于调用
const app = express()
//这里相当于就是做了一个路径为/的接口,只能通过前端get请求才能够响应
//利用express的写法写的
app.get("/", (req, resp) => {
    //send函数非常强大,可以自动检测是否为html代码,如果是会自动解析
    //相当于整合了http模块的write()函数和end()函数以及自动检测Content-Type
    resp.send("你好,我是express")
})

app.get("/test", (req, resp) => {
    //这里输出的就是加粗的一段文本
    resp.send("<b>你好,我是express</b>")
})

//利用原来的http模块写法写的
app.get("/test2", (req, resp) => {
    //send函数非常强大,可以自动检测是否为html代码,如果是会自动解析
    //相当于整合了http模块的write()函数和end()函数以及自动检测Content-Type
    resp.writeHead(200, {"Content-Type": "text/html;charset=utf8"})
    resp.write("你好,我是express")
    resp.end()
})
//设置express服务器的端口
app.listen(3000, () => {
    //回调函数,这里和http模块服务器一样
    console.log("服务器启动")
})

express的接口特殊写法

const express = require("express")
const app = express()
//   /xxx/:id 是匹配 /xxx/任意字符
app.get("/threebody/:id", (req, resp) => {
    //这种写法常用于网页中的视频编号或者文章编号等,用来区别文章或视频进行渲染的
    //这种写法多用于前后端不分离,若是前后端分离,这一写法就不必要了
    //具体可以了解学习Vue的路由相关方面知识,这里就不多做概述了。
    //如 /threebody/1 /threebody/2 都符合这一匹配
    resp.send("自然选择,前进四!!" + req.params.id)
})
app.listen(3000)

express中间件

先创建一个index.js

const express = require("express")
const app = express()
//创建路由
const router = require("./login")
//给路由挂载接口

//应用级别
app.use((req, resp, next) => {
    console.log("验证token")
    next()
})

//应用级别
app.use("/", router)
//错误中间件
app.use((req,res)=>{
    //查看res响应状态是否为404,若是发送页面找不到
    res.status(404).send("页面找不到")
})
app.listen(3000)

创建Login.js,用于存放路由中间件绑定的接口

const express = require("express")
const router = express.Router()
//路由级别
router.get("/home", (req, resp) => {
    resp.send("home")
})
router.get("/login", (req, resp) => {
    resp.send("login")
})
//将router暴露出去
module.exports=router

注意:使用路由中间件的好处在于,一个模块一个文件,避免了大量代码堆叠在一起,以后只要是一个功能要用到的代码,只要将这个功能提取出一个单独文件,然后暴露router,最后在主服务器引入暴露的router注册中间件就好,可维护性也比之前强。

获取请求参数

get请求参数获取

req.query

post请求参数获取

//给路由挂载接口
//配置解析post参数的,不用下载第三方,使用内置的url解析
//post参数: username=test&password=123456
app.use(express.urlencoded({extended:false}))
//设置express为json格式返回
app.use(express.json())

req.body

利用express托管静态文件

将静态文件所在的目录作为参数传递给express.static中间件就可以提供静态资源文件的访问了

例如:假设在public目录放置了图片,css和Javascript文件,你就可以:

app.use(express.static("静态资源目录路径"))

//如
app.use(express.static("./public"))

现在,public目录下面的文件就可以访问了。 

http://localhost:3000/js/app.js
http://localhost:3000/image/test.png

如果静态目录存放在多个目录下,可以多次设置static静态资源

app.use(express.static("./public"))
app.use(express.static("./files"))

express生成器

下载express生成器

npm install -g express-generator

使用生成器创建express项目

express 项目名
#如:
express myApp --view=ejs

创建完成后进入项目目录并开始下载所需依赖

cd myApp
#自动下载所有需要的依赖
npm i

#下载完毕后开始运行项目
npm start

#访问网址
localhost:3000

以上就是express框架相关的内容,欢迎各位评论教导,如果觉得文章还不错或者有什么地方不懂的,欢迎留言提问点赞🧡🤞🤞🤞🧡 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值