路由(express)
创建一个router.js
//加载文件操作模块
var fs=require('fs')
var express=require('express')
//创建一个路由容器
var router=express.Router()
router.get('/',function (req,res) {
fs.readFile('./public/value.json', function (err, data) {
console.log(data.toString())
})
})
//导出router容器
module.exports=router
入口js文件
var express=require('express')
var app=express()
//加载路由模块
var router=require('./router')
//把路由容器挂在app服务中
app.use(router)
//开放静态资源public文件夹
app.use('/public/',express.static('./public/'))
//配置使用art-template模板引擎
app.engine('html',require('express-art-template'))
//渲染默认是views文件夹目录里面
//如需更改
//app.set('xxx','views')
app.listen(3000,function(){
console.log('serve is running')
})
res.location()与res.redirect()的区别
处理请求
post请求
例如:处理表单form请求
<form action="/register" method="post">
<input type="text" name="name">
</form>
router.js文件
//加载文件操作模块
var fs=require('fs')
var express=require('express')
//创建一个路由容器
var router=express.Router()
router.post('/register',function(req,res){
console.log(req.body)
})
//导出router容器
module.exports=router
配置解析表单post请求体插件
var bodyParser=require('body-parser')
//配置解析表单post请求体插件(在挂载router之前)
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json)
入口文件
var express=require('express')
var app=express()
//加载body-parser模块
var bodyParser=require('body-parser')
//加载路由模块
var router=require('./router')
//配置模板引擎和body-parser一定要在app.use(router)
//parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())
//配置使用art-template模板引擎
app.engine('html',require('express-art-template'))
//把路由容器挂在app服务中
app.use(router)
//开放静态资源public文件夹
app.use('/public/',express.static('./public/'))
//渲染默认是views文件夹目录里面
//如需更改
//app.set('xxx','views')
app.listen(3000,function(){
console.log('serve is running')
})
请求和响应
Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据
app.get('/', function (req, res) {
})
Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。常见属性有
req.path:获取请求路径
Response 对象 - response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据。常见属性有:
res.set():设置HTTP头,传入object可以一次设置多个头
res.send():传送HTTP响应
res.json():传送JSON响应
res.status():设置HTTP状态码
如:res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
res.end() 用于快速结束没有任何数据的响应。
但也可以发送字符串,boolean等类型