express中间件使用

express中间件使用

express使用步骤
//加载模块
const express = require('express');
const app = express();//相当于http 的createserver

//设置路由
app.get('/', (req, res) => res.send('Hello World!'));
//设置访问的端口号
app.listen(3000, function () {
    console.log('server is runing port 3000');
});
开放静态目录
app.use('/public/',express.static('./public/'));
//两个参数时当用/public/来访问路由时 ,默认进入public目录中,为了对应,前后一般一样
//当省略第一个参数时,就不用通过public去访问,而是直接写文件名

art-template

express中配合使用art-template模板引擎

art-template GitHub仓库

安装模板引擎

npm install --save art-template
npm install --save express-art-template

配置

app.engine('art',require('express-art-template'));
 //当渲染以.art结尾的文件的时候  使用模板引擎
 //渲染文件的类是可以修改的,但是在加载模板引擎的时候必须有这句话,
 //因为这是固定写法
express为response响应对象提供了一个方法 render
render默认是不可以用的,但是如果配置了模板引擎就可以使用了

render用法:

res.render('模板文件名',{模板数据});
//渲染模板不一定要有数据,第二个参数有数据的时候可以写,没有的时候可以不写
注意:第一个参数路径是相当于views的,默认会去views文件下查找文件,相当于一个默认行为;
如果想要更改默认的views目录,则可以使用
app.set('views','要修改的目录的路径');

使用(此示例括号使用不正确,请注意);

var express = require('express'); 
var app = express();

//查看引擎设置
 app.engine('art',require('express-art-template')); 
app.set('views',path.join(__ dirname,'views')); 
app.set('view engine','art');

//路由
 app.get('/',function(req,res) { 
    res.render('index.art',{ 
        user:{ 
            name:'aui',
            tags:[ 'art','template',' nodejs' ] 
        } 
    }); 
});

请求数据的获取

get获取url数据 req.query

express获取post提交的数据

使用中间件(相当于插件)body-parser来获取

安装

npm install body-parser --save

配置

var express = require('express')
var bodyParser = require('body-parser')//重点

var app = express()
//重点配置,只要加入这根配置,请求对象就会多一个属性:body
//也就是说可以再直接通过req.body来获取表单post提交的数据
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())



app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})
请求重定向;res.redirect(‘要定向的路由’);

项目模块划分

1.入口模块:
	创建服务
    做一些相关服务的配置
    模板引擎
    body-parser解析post表单请求体
	提供静态资源服务
    挂载路由
    监听端口启动服务
2.路由模块
	根据不同的根据不同的请求处理函数

epress挂载路由容器

//router.js文件中
//搭建开发环境
const express = require('express');
/*路由模块 ,创建一个路由容器,把路由都挂载到router路由容器中*/
const router=express.Router();
router.get('/',function (req,res) {
   res.send('345');
});
//想要在别的模块访问路由,需要导出路由并且在别的模块引入
module.exports=router;


//index.js中
//搭建开发环境
const express = require('express');
const app = express();     //创建服务相当于http的createserver
const router = require('./route.js');   //加载路由模块
//把路由挂载到app服务中
app.use(router);    //当接时收到请求时,指向路由模块,
app.listen(3000, function () {  //添加监听端口号
    console.log('server is runing port 3000');
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值