node api demo
1.package.json
{ "name": "node-api", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "cors": "^2.8.5", "express": "^4.18.2", "multer": "^1.4.5-lts.1" } }
2.index.js
// 导入模块 const express = require('express') const path = require('path') // 导入中间件 const cors = require('cors') // 创建服务器 const app = express() // 注册全局中间件 app.use(cors()) // 配置解析application x-www-form-urlencoded 模式的表单数据 的中间件 app.use(express.urlencoded({ extended: false})) const host = 'http://127.0.0.1', port = 5001 // 启动服务器 app.listen(port,(req,res)=>{ console.log(`app started at port ${ host }:${ port }`) }) function sleep(ms) { return new Promise(resolve=>setTimeout(resolve, ms)) } const router = express.Router() // get router.get('/test_get',(req,res)=>{ res.send({ code:200, data:"get" }) }) // get router.get('/test_get2/:id',(req,res)=>{ console.log(req.params) res.send({ code:200, data:"get" }) }) // get router.get('/test_get3',async (req,res)=>{ await sleep(1000*3) res.send({ code:200, data:"get" }) }) // post router.post('/test_post',(req,res)=>{ res.send({ code:200, data:"post" }) }) // put router.put('/test_put',(req,res)=>{ res.send({ code:200, data:"put" }) }) // delete router.delete('/test_delete',(req,res)=>{ res.send({ code:200, data:"delete" }) }) // 文件下载 router.get('/download', (req, res) => { res.download('logo.png'); }); // 文件接收 const multer = require('multer') let storage = multer.diskStorage({ //设置文件存储路径 destination: (req, file, cb) => { cb(null, "./upload"); // 相对于app.js文件路径 }, //设置文件存储名称 filename: (req, file, cb) => { let extname = path.extname(file.originalname); // 截取文件后缀名 cb(null, `${file.fieldname}-${Date.now()}${extname}`); // 不需要我们执行IO操作,前端提交后,文件jian被存储到destination路径下,文件名为这里设置的文件名 } }) const upload = multer({storage}) // 2.存储 FormData 中名为 'upfile' 的文件 router.post('/upload', upload.single('upfile'), (req, res, next) => { // 3. 存储后的文件信息在 req.file 中,此时文件已经存储到本地了。 console.log(req.file) res.send({ code:200, data:"upload ok" }) }) app.use('/pyapi',router)