文章目录
node之express框架第一节
htpp模块
createServer方法的回调函数的第一个参数是一个request对象,拥有以下属性。
url:发出请求的网址。
method:HTTP请求的方法。
headers:HTTP请求的所有HTTP头信息。
const http = require('http')
const qs = require('querystring')
const server = http.createServer()//创建服务器
server.on('request',function (req,res) {
console.log(req.url)
// request: 客户端请求 服务端的 信息
// response: 服务端 响应 客户端的 信息
res.setHeader('Access-Control-Allow-Origin','*')
res.end(JSON.stringify({
status: 200,
data: ['a','b','c']
}))
})
server.listen(3000,function (err) {
if(!err)
console.log('服务器启动成功')
console.log('http://localhost:3000')
})
const http=require('http')
const server=http.createServer();
server.on('request',function(req,res){
res.setHeader('Access-Control-Allow-Origin','*')
// req 客户端的信息
// res 服务端响应客户端的信息
res.end('http server');
})
response.end([data[, encoding]][, callback])
res .end() 此方法向服务器发出信号,表明已发送所有响应头和主体,该服务器应该视为此消息已完成。 必须在每个响应上调用此 response.end()
方法。
如果指定了 data
,则相当于调用 response.write(data, encoding)
之后再调用 response.end(callback)
。
如果指定了 callback
,则当响应流完成时将调用它。
express
Express.js或简称Express,是针对Node.js的web应用框架,主要是帮助我们简化各种web服务的实现方式
下载方式
npm i express
基本用法
express返回的是一个函数, 我们需要通过执行这个函数来得到一个express实例
const express = require('express')
const app = express()
const express = require('express')
const app = express()
const http = require('http').Server(app)
app.get('/',function (req,res) {
res.header('Access-Control-Allow-Origin','*')
res.send({
status: 200,
msg: 'express 框架'
})
})
http.listen(3001)
打开http://127.0.0.1:3001/
得到如下界面
中间件的概念 app.use
中间件的工作就是在特定的工作在执行之前, 提前先做一些基本处理
比如在发送数据前做一些基本配置
比如在处理数据前做一些格式化数据的工作等等
express的内容分类
const express = require('express')
const app = express()
// 根路由
app.get('/',function (req,res){
res.send('express data')
})
// 1级路由
app.get('/guonei',function (req,res){
res.send('国内的数据')
})
// 1级路由
app.get('/guoji',function (req,res){
res.send('国际的数据')
})
// 1级路由
app.post('/game',function (req,res){
res.send('游戏')
})
// 2级路由 多级就是为了清楚 路由的分类 3 4级已经表达了很清楚 没必须再多了
app.get('/help/downloadApp',function (req,res){
res.send('下载页面')
})
app.get('/login',function (req,res) {
res.header('Access-Control-Allow-Origin','*')
// req.query 获取查询字符串参数,返回对象
console.log(req.query.username)
console.log(req.query.age)
res.send('登录接口')
})
app.get('/course/:id/:abc',function (req,res) {
res.header('Access-Control-Allow-Origin','*')
// req.query 获取查询字符串参数,返回对象
console.log(req.params)
console.log(req.params.id)
res.send('动态路由参数')
})
// 捕获 没有注册的路由
app.get('*',function (req,res) {
res.send('此页面不存在')
})
app.listen(3000,function (){
console.log('express服务器启动成功')
console.log('http://127.0.0.1:3000')
})
一级路由界面:
express router
在使用express管理url时,我们希望能有一种更方便的管理方式,可以更加简化路由的管理,express router 就是完成这项功能的。
使用router
目的是中间件和路由的分离的实例。您可以将其视为“迷你应用程序”,只能执行中间件和路由功能。每个Express应用程序都有一个内置的应用程序路由器。
路由器的行为类似于中间件本身,因此您可以将其用作 app.use()的参数或作为另一个路由器的use()方法的参数。
顶级express
对象具有一个用于创建新对象的Router()方法router
。
另一个路由器的use()方法的参数。
顶级express
对象具有一个用于创建新对象的Router()方法router
。
一旦你创建了一个路由器的对象,你可以添加中间件和HTTP方法路由(如get
,put
,post
,等),以它就像一个应用程序。