用express搭建静态托管服务器及简易接口

Express框架

快速搭建简易服务器

1.创建项目并初始化

创建一个文件夹,作为我们的项目文件夹(不要起中文名),之后在此目录下启动终端,运行 npm i -y 初始化项目 生成package.json文件

2.下载 express 包

命令 : npm i express

3.快速创建服务器代码

 const express = require('express') ​   const app = express() ​   app.get('/', (req, res) => { res.send('hello world') }) ​  app.listen(3000, () => console.log('app listening on port 3000!')) ​ 

说明:

  • app.get(‘/’)相当于添加事件监听:当用户以get方式求”/”时,它后面的回调函数会执行,其回调函数中的req,res与前面所学http模块保持一致。
  • res.send()是exprss框架给res对象补充提供的方法(http模块中的res是没有这个方法的),用于结束本次请求。类似的还有res.json(), res.sendFile() 。
  • express 框架会增强req,res的功能

托管静态资源-web服务器

目录结构:

image.png

  const express = require('express')  const app = express()  app.use(express.static('publish')) ​ app.listen(3006,()=>{ console.log('访问成功,请到 http://localhost:3006') })  

扩展:

限制前缀

 app.use('/public', express.static('public')) 

这意味着想要访问public下的内容,必须要在请求url中加上/public

路由和接口

路由(Routing)是由一个 URL(或者叫路径标识)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何处理响应客户端请求。每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这些个函数将被执行。

用express搭建简易接口

1.准备工作,先下载express包=> npm i express

2.编写完代码后(逻辑代码见下),执行 node 文件名.js 启动服务器

3.测试接口是否成功, get接口直接用浏览器打开或postman等测试软件,其他类型,都需要借助第三方工具

1.get接口

express框架会自动收集get类型的接口从url地址中传递的查询字符串参数,并自动保存在req对象的query属性中。我们直接来获取即可。

const express = require('express'); const app = express(); app.get('/get', function(req, res) {  console.log(req.query);  res.send({ name: 'abc' }); }); app.listen('8088', () => { console.log('8088'); });  或postman等测试软件看是否成功 

2.post接口(普通键值对)

const express = require('express'); const app = express();  app.use(express.urlencoded()); ​ app.post("/add",function(req,res){  console.log(req.body); res.send({ name: 'abc' }); }) app.listen('8088', () => { console.log('8088'); });  

3.post接口(json格式的参数)

在post传递参数时,如果要传入的参数比较复杂(多级嵌套),则可以使用json格式上传,如你要上传的参数:

let data = { name:"abc", address:{ "a":1, "b":2, "info":"c" } } 

后端代码:

const express = require('express'); const app = express();  app.use(express.json());  ​  app.post('/postJSON',(req,res)=>{  console.log(req.body); res.send({ name: 'abc' }); }) app.listen('8088', () => { console.log('8088'); }); 

4.post接口(form-data文件上传)

如果post涉及文件上传操作,则需要在服务器端额外使用第三方multer这个包(不属于express)来获取上传的信息。

Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。

1.安装包

npm install multer

2.代码

const express = require('express'); const app = express(); ​  const multer = require('multer');  const upload = multer({dest:'uploads/'})   ​   ​ app.post("/postfile",upload.single('cover'), (req,res)=>{    res.send({ name: 'abc' }); }) 

注意:

  • 如果当前目录下没有uploads,它会自动创建uploads这个文件夹
  • upload.single只是处理了文件的上传。你仍可以通过req.body来获取其它参数

原文链接:https://juejin.cn/post/7091983986829819911

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33122

(0)
上一篇 2024年12月27日
下一篇 2024年12月27日

相关推荐

发表回复

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

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml