Node.js Express框架基本用法
2023-09-11 14:21:07 时间
Express是Node.js的轻量Web应用开发框架。
安装模块
Express框架及几个相关的重要模块安装
cnpm install --save express cnpm install --save body-parser cnpm install --save cookie-parser cnpm install --save multer --save
body-parser - node.js 中间件,用于处理JSON, Raw, Text 和 URL 编码的数据。
cookie-parser - 解析Cookie的工具。通过req.cookies可以把传过来的cookie转成对象。
multer - node.js 中间件,用于处理 enctype="multipart/form-data"的表单数据。
第一个例子
引入 express 模块,浏览器访问http://localhost:3000/后,输出 "Hello World" 。
备注:端口号也可由环境变量设置,win下命令提示符输入先set port=3001,再输入node 文件名.js运行。
const express = require('express'); const app = express(); const port = process.env.PORT || 3000 app.get('/', (req, res) => res.send('Hello World') ); app.listen(port, () => { console.log(`Server listening on: http://localhost:${port}`); });
路由
const express = require('express'); const app = express(); //GET请求 app.get('/', (req, res)=>{ //传送HTTP响应 res.send('Hello GET'); }); //POST请求 app.post('/', (req, res)=>{ //传送JSON响应 res.json({type:'POST'}); }); //正则匹配 app.get('/items*', (req, res)=>{ res.send(req.originalUrl); }); //带参数 app.get('/items/:id', (req, res)=>{ res.send('/items/' + req.params.id); }); app.listen(3000, ()=> { console.log('Server listening on: http://localhost:3000'); });
静态文件
使用express.static中间件来设置静态文件如JavaScript、CSS和图片路径。
const express = require('express'); const app = express(); app.use('/public', express.static('public')); app.listen(3000, ()=>{ console.log('Server listening on: http://localhost:3000'); });
在当前文件所在路径新建目录public/images,放一张图片1.gif。
访问:http://localhost:3000/public/images/1.gif
获取Get和Post请求数据
const express = require('express'); const app = express(); const bodyParser = require('body-parser'); app.use(bodyParser.json()); //支持编码为json的请求消息体 app.use(bodyParser.urlencoded({ extended: true })); //支持编码为表单的请求消息体 //GET请求 app.get('/', (req, res)=>{ const data = { "id": req.body.id, "name": req.body.name }; //输出可用多种方法: //res.end只支持两种参数:String、Buffer res.end(JSON.stringify(data)); //res.send支持多种参数:String、Buffer、Array、json对象; //另外发送更多的响应报文头,包括 Content-type: application/json; charset=utf-8 //res.send(JSON.stringify(data)); //res.send(data); //res.jsonp(data); //res.json(data); console.log(data); }); //POST请求 app.post('/', (req, res)=>{ const data = { "id": req.body.id, "name": req.body.name }; res.json(data); console.log(data); }); //POST请求 app.post('/json', (req, res)=>{ const data = { "id": req.body.id, "name": req.body.name }; res.json(data); console.log(data); }); app.listen(3000, ()=> { console.log('Server listening on: http://localhost:3000'); });
相关文章
- JS+CSS3 360度全景图插件 - Watch3D.js
- JS框架_(Popup.js)3D对话框窗口插件
- JS框架_(Esign.js)仿信用卡电子签名特效
- JS框架_(JQuery.js)图片相册掀开切换效果
- JS框架_(JQuery.js)夜晚天空满天星星闪烁动画
- Node.js之HTTP请求与响应
- A2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)
- clipboard.js文本复制到剪贴板的现代方法
- linux(ubuntu) 安装 node.js
- [Node.js] Sequelize Intro - 2 Migrations
- [Tools] Batch Create Markdown Files from a Template with Node.js and Mustache
- [WASM] Run WebAssembly in Node.js using the node-loader
- [Whole Web, Node.js, PM2] Restarting your node.js app on code change using pm2
- [Node.js] Add node.js command line to global
- [Node.js] Sequelize Intro - 1
- [Node.js] Mock an API for Local Development in React with Mirage JS
- [Node.js] node-persist: localStorage on the server
- [Whole Web, Node.js, PM2] Restarting your node.js app on code change using pm2
- [Node.js] Using npm link to use node modules that are "in progress"
- [Node.js] Level 2 new. Event
- Node.js 命令行程序开发教程
- 关于 Node.js scoped module 的一些理解
- Node.js 环境下的 console.log 是同步执行的
- 14 【node js 1/7】
- node.js JS对象和JSON字符串之间的转换
- Node.js: node-redis.js客户端
- log4js-node:node.js日志框架输出到文件
- Node.js v0.10.31API手工-DNS
- Node.js(二)node 核心模块 fs、HTTP模块、express框架
- 超详细的Node.js瓦片拼接教程:从原理到实战,助你轻松完成地图应用开发