express中间件使用

mac2022-06-30  71

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)