当前位置: 首页 > news >正文

nodejs之express学习(1)

安装

npm i express

使用

// 导入
const express = require('express')
// 创建应用
const app = express()
// 创建路由
app.get('/home',(req,res)=>{res.end("hello express")
})
app.listen(3000,()=>{console.log("服务已启动~")
})

路由的介绍

什么是路由

官方定义:路由确定了应用程序如何响应客户端对特定端点的请求

路由的使用

一个路由的组成有 请求方法 , 路径 和 回调数 组成
express 中提供了一系列方法,可以很方便的使用路由,使用格式如下

app.<method>(path,callback)

在这里插入图片描述

获取请求参数

express框架封装了一些API来方便获取请求报文中的数据,并且兼容原生HTTP模块的获取方式

// 导入
const express = require('express')
// 创建应用
const app = express()
// 创建路由
app.get('/home',(req,res)=>{//原生操作console.log(req.method)   //getconsole.log(req.url)      console.log(req.httpVersion)console.log(req.headers)//express操作console.log(req.path)   // /homeconsole.log(req.query)  // {a:'100',b:'200'}console.log(req.ip)     // 127.0.0.1//获取请求头console.log(req.get('host'))res.end("hello express")
})
app.listen(3000,()=>{console.log("服务已启动~")
})

路由参数获取

const express = require('express')
const app = express()
app.get('/:id.html',(req,res)=>{// get params  of urlconsole.log(req.params.id)res.setHeader('content-type','text/html;charset=utf-8')res.send('details of goods')
})
app.listen(3000,()=>{console.log('server start')
})

练习

const express = require('express')
const {singers} = require('./singer.json')
const app = express()
app.get('/singer/:id.html',(req,res)=>{let {id} = req.paramslet result = singers.find(item=>{if(item.id===Number(id)){return true}})if(!result){res.end('404 Not Found')return}res.end(`<h1>${result.singer_name}</h1><img src = '${result.singer_pic}'/>`)
})app.listen(3000,()=>{console.log('server start')
})
http://www.lryc.cn/news/247022.html

相关文章:

  • 【LeetCode】121. 买卖股票的最佳时机
  • Vue3-VueRouter4路由语法解析
  • ChromeDriver最新版本下载与安装方法
  • illuminate/database 使用 四
  • Spring面向切面编程(AOP);Spring控制反转(IOC);解释一下Spring AOP里面的几个名词;Spring 的 IoC支持哪些功能
  • vatee万腾的科技征途:Vatee独特探索的数字化力量
  • MySQL学习day03
  • 《QT从基础到进阶·三十七》QWidget实现左侧导航栏效果
  • sftp学习
  • C++之STL库:string类(用法列举和总结)
  • 小程序中的大道理--综述
  • tlais智能学习辅助系统-修改部门功能实现
  • GLM: 自回归空白填充的多任务预训练语言模型
  • 函数递归所应满足的条件
  • Python入职某新员工大量使用Lambda表达式,却被老员工喷是屎山
  • Android Bitmap保存成至手机图片文件,Kotlin
  • frp V0.52.3 搭建
  • 最近数据分析面试的一点感悟...
  • ZYNQ_project:IIC_EEPROM
  • Leetcode 2940. Find Building Where Alice and Bob Can Meet
  • C++ 泛型编程,函数模版和类模版
  • 【封装UI组件库系列】封装Button图标组件
  • windows系统mobaxterm远程执行linux上ssh命令
  • debian 12 配置
  • AIGC创作系统ChatGPT网站源码、支持最新GPT-4-Turbo模型、GPT-4图片对话能力+搭建部署教程
  • Vue 中简易封装网络请求(Axios),包含请求拦截器和响应拦截器
  • git提交报错error: failed to push some refs to ‘git url‘
  • 【Python】(自定义函数)模块的相对路径导入
  • 巧妙之中见真章:深入解析常用的创建型设计模式
  • Selenium切换窗口、框架和弹出框window、ifame、alert