nodejs express 路由
来源:互联网 发布:ubuntu 查看jdk版本 编辑:程序博客网 时间:2024/06/05 09:31
express基本路由
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('hello, express')})app.get('/users/:name', function (req, res) { res.send('hello, ' + req.params.name)})app.listen(3000)
req.query
: 解析后的 url 中的querystring
,如?name=haha
,req.query 的值为{name: 'haha'}
req.params
: 解析 url 中的占位符,如/:name
,访问/haha
,req.params 的值为{name: 'haha'}
req.body
: 解析后请求体,需使用相关的模块,如 body-parser
,请求体为{"name": "haha"}
,则 req.body 为 {name: 'haha'}
app.post('/',function(req,res))
获得post请求
app.all('/',function(req,res))
获得所有(包括get和post)请求
路径使用正则表达式
// 匹配任何路径中含有 a 的路径:app.get(/a/, function(req, res) { res.send('/a/');});// 匹配 butterfly、dragonfly,不匹配 butterflyman、dragonfly man等app.get(/.*fly$/, function(req, res) { res.send('/.*fly$/');});
路由句柄
app.get('/example/b', function (req, res, next) { console.log('response will be sent by the next function ...'); next();}, function (req, res) { res.send('Hello from B!');});
或在express.Router中使用路由句柄 routes/index.js
ar express=require('express')var router=express.Router()router.get('/',function(req,res,next){ //res.send('hello express') console.log('next1') next()},function(req,res){ console.log('next2') res.send('try again')})module.exports=router
index.js
var express=require('express')var app=express()var indexRouter=require('./routes/index')var port=8000//app.use('/',indexRouter)////app.use('/users',usersRouter)app.use('/',indexRouter)app.listen(port)console.log('listen at '+port)
使用回调函数数组处理路由:
var cb0 = function (req, res, next) { console.log('CB0'); next();}var cb1 = function (req, res, next) { console.log('CB1'); next();}var cb2 = function (req, res) { res.send('Hello from C!');}app.get('/example/c', [cb0, cb1, cb2]);
express.Router
routes/index.js
:
var express=require('express')var router=express.Router()router.get('/',function(req,res){ res.send('hello express')})module.exports=router
routes/users.js
:
var express=require('express')var router=express.Router()router.get('/:name',function(req,res){ res.send('name:'+req.params.name)})module.exports=router
index.js
:
var express=require('express')var app=express()var indexRouter=require('./routes/index')var usersRouter=require('./routes/users')var port=8000app.use('/',indexRouter)app.use('/users',usersRouter)app.listen(port)console.log('listen at '+port)
程序作用同第一种一样
routes(app)
更深一步的封装: routes/users.js
:
const express=require('express')const router=express.Router()router.get('/:name',function(req,res){ res.send(req.params.name)})
routes/index.js
:
module.exports=function(app){ app.use('/',require(./users))}
阅读全文
0 0
- nodejs express 路由
- nodejs express路由详解
- NodeJS 实现类是express路由
- NodeJS使用Express框架设置路由
- 菜鸟学习nodejs--express(二)路由
- nodejs开发 express路由与中间件
- NodeJS之重构Express路由
- nodejs开发 express路由与中间件
- nodejs express 子app功能(路由)
- nodejs模块:简单http请求路由,仿express
- nodejs学习2:Express的路由(Route)功能
- nodejs express
- 【NodeJS 】Express
- nodejs--Express
- Nodejs+Express
- Express路由
- express路由
- express 路由
- IntelliJ IDEA 2016.3.4 Maven项目为什么不能右键新建Java文件的解决办法
- matplotlib绘图
- LINUX下常用SHELL指令
- React Navigation 入门(三)
- 使用Python读取C语言.so文件-: libmysqlclient.so.16: cannot open shared object file: No such file o
- nodejs express 路由
- spark-sql(二)---ThriftServer模式
- HDOJ1048 The Hardest Problem Ever
- 如何更新LMK Low Memory Killer的阈值
- IEEE论文检索地址和使用方法
- CSRF攻击与防御
- zabbix sender 配置方法
- Tomcat 部署项目的三种方法
- scala中运算符 :: 、:+ 、+: 、::: 、++ 的区别