Node.js——express

313 阅读2分钟

什么是express

express是基于Node.js平台,快速、开放、极简的web开发框架 express的作用和Nodejs内置的http模块类似,是专门用来创建web服务器的 express的本质,就是一个npm的第三方包,提供了创建web服务器的边界方法 express的中文官网

express的基本使用

1.安装express

npm i express@4.17.1

2.使用express创建最基本的web服务器

导入express
const express=require('express');
//创建web服务器
const app=express();
//调用app.listen()启动服务器
app.listen(80,()=>{
    console.log("express server is running at http://localhost:80");
})

3.如何监听客户端的get和post请求,并向客户端响应数据

  const express=require("express");
  const app=express();
  //监听客户端的get请求,并向客户端响应数据
  app.get('/user',(req,res)=>{
      res.send({uname:'zs',age:18})
  })
  
  //监听客户端的Post请求,并向客户端响应数据
  app.post('/user',(req,res)=>{
      res.send("请求成功")
  })
  app.listen(80,()=>{
      console.log("express server is running at http://127.0.0.1:80");
  })

4.获取url中携带的查询参数

通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:

const express=require('express');
const app=express();
app.get('/',(req,res)=>{
    //req.query默认是一个空对象
    //客户端使用?name=zs&age=20这种查询字符串的形式,发送到服务器的参数,可以通过req.query()对象访问到,例如:
      req.query.name   req.query.age
      consolelog(req.query)
})
app.listen(80,()=>{
    console.log("express server is running at http://localhost:80");
})

5.获取url中的动态参数 通过req.params对象,可以访问到url中通过:匹配的动态参数

const express=require('express');
const app=express();

//注意:这里的:id是一个动态的参数
app.get('/user/:id',(req,res)=>{
    //req.params是动态匹配到的url参数,默认也是一个空对象
    console.log(req.params);
    res.send(req.params);
})
app.listen(80,(req,res)=>{
    console.log('express server is running at http://127.0.0.1:80')
})

托管静态资源

1.express.static() express提供了一个非常好用的函数,叫做express.static(),通过它,我门可以非常方便的创建一个静态资源服务器,例如:通过以下代码就可以将public目录下的图片,css文件,javascript文件对外开放访问了: app.use(express.static('public'))

**注意:**express在指定静态目录中查找文件,并对外提供资源的访问路径。因此:存放静态文件的目录名不会出现在url中

const express=require('express');
const app=express();
//在这里调用express.static()方法,快速的对外提供静态资源
app.use(express.static('./clock'));
app.listen(80,()=>{
    console.log('express server is running at http://127.0.0.1');
)

2.如何对外托管多个静态资源目录

如果要托管多个静态资源目录,请多次调用express.static()函数

app.use(express.static('public')); app.use(express.static('files'));

const express=require('express');
const app=express();

//在这里,调用express.static()方法,快速的对外提供静态资源
app.use(express.static('../files'));
app.use(express.static('../clock'));
app.listen(80,(req,res)=>{
    console.log('express server is running at http://127.0.0.1:80')
})

3.挂载路径前缀 如果希望在托管的静态资源访问路径之前,挂在路径前缀,则可以使用如下方式 app.use('/public',express.static('public'))

http://localhost:3000/public/images/kiten.jpg
http://localhost:3000/public/css/index.css
http://localhost:3000/public/js/index.js