//app.js var express = require('express'); var path = require('path'); var app = express(); var index = require('./routes/index'); var users = require('./routes/users'); app.use('https://www.jb51.net/', index); app.use('/users', users); app.listen(3000);
这样表示:3000/的路由交给index处理
:3000/users的路由交给users处理
下面简单的实现一下路由
//routes/index.js var express = require('express'); var router = express.Router(); router.get('https://www.jb51.net/', function(req, res){ res.end('index'); }); router.get('/123', function(){ res.end(123); }); module.exports = router;
//routes/users.js var express = require('express'); var router = express.Router(); router.get('https://www.jb51.net/', function(req, res) { res.end('users'); }); module.exports = router;
通过express.Router()创建的router就像一个mini版的app一样
app能做的,router都能做
只是我们把逻辑都封装到了各个路由模块中
上面代码的结果:
body-parser中间件
作为一个入门级文章
最后就来浅显的谈一个中间件body-parser吧
其实express在3.x版本中内置了很多中间件
但是4.x版本就将出static以外的所有中间件全部抽离出来了
所以就需要我们单独安装
对照表如下:
Express 3.0
Express 4.0
bodyParser
body-parser
compress
compression
cookieSession
cookie-session
logger
morgan
cookieParser
cookie-parser
session
express-session
favicon
static-favicon
response-time
response-time
error-handler
errorhandler
method-override
method-override
timeout
connect-timeout
vhost
vhost
csrf
csurf
刚才就提到了POST请求有所不同
不同的地方就在于我们需要body-parser这个中间件来处理数据
通过req.body来获得数据
首先使用前不要忘记下载
npm install body-parser --save
//app.js var express = require('express'); var bodyParser = require('body-parser'); var path = require('path'); var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.get('https://www.jb51.net/', function(req, res){ res.send('<form method="POST" action="./form">\ <input type="text">\ <input type="submit">\ </form>'); }); app.post('/form', function(req, res){ console.log(req.body); var user = req.body.user; res.send('账号: ' + user); }); app.listen(3000);
下面这四个方法分别用于对body内容采取不同的处理方法
bodyParser.json(options) 处理JSON数据
bodyParser.raw(options) 处理buffer数据
bodyParser.text(options) 处理文本数据
bodyParser.urlencoded(options) 处理UTF-8编码数据
这样我首先通过get请求获取主页面
提交表单向服务器发送post请求
服务器响应结果
express-generator
通过express-generator应用生成器
可以为我们快速生成项目雏形
在你要生成项目的目录中下载express-generator
npm install express-generator
然后输入
express <项目文件名>
这样express就会把必要的文件夹以及代码快速生成了