express的使用(七)

//设置 视图文件路径

app.set(“views”,path.join(__dirname,“views”));

//设置解析 视图文件的引擎

app.set(‘view engine’,‘ejs’)

//设置静态资源的路径

app.use(‘/public’,express.static(path.join(__dirname,‘public’)))

var ip=‘127.0.0.1’;//ip

app.listen(port,ip,function(){ //app服务器监听端口

console.log(“服务器运行在http://”+ip+“:”+port)

});

app.use(‘/’,RouterHome)

app.use(‘/a’,RouterA)

function fn(req,res){ // app添加 get请求根路径的路由

// res.send(“hello world”);// 向前台输出

console.log(req.url)

res.write(“hello express123”);

res.end()

}

// module.exports=app;

bodyParser中间件的使用


执行指令: cnpm install body-parser -D

var bodyParser=require(‘body-parser’);

app.use(bodyParser.urlencoded({extended:true,limit:100}))

app.post(‘/api’,function(req,res,next){

console.log(req.body)

})

ejs语法

变量的声明

<% title=‘hello world’ %>

变量的使用

<%= title %>

循环语句 arr:[‘张三’,‘李四’,“王五”,“小明”]

<% for(var item in arr){ %>

  • 姓名:<%= arr[item] %>

    <% } %>

    循环语句 list=[

    {title:‘昌平马池口大雨’,authour:‘于成龙’,times:‘2019-4-9’},

    {title:‘吉利大学阅兵准备’,authour:‘蒋伟’,times:‘2019-4-1’},

    {title:‘积云教育就业喜报’,authour:‘耿丽娜’,times:‘2019-3-8’},

    {title:‘昌平马池口大雨’,authour:‘于成龙’,times:‘2019-4-9’},

    ]

    <% for(var item in list){ %>

    <%= list[item].title %>

    作者:<%= list[item].authour %>

    时间:<%= list[item].times %>

    <% } %>

    条件判断语句

    <% on=true %>

    <% if(!on){ %>

    开/注册

    <% }else{ %>

    关/登录

    <% } %>

    <% include ./footer.ejs %>

    Express.Router用法

    从Express 4.0开始,路由器功能成了一个单独的组件Express.Router。它好像小型的express应用程序一样,有自己的use、get、param和route方法。

    基本用法

    首先,Express.Router是一个构造函数,调用后返回一个路由器实例。然后,使用该实例的HTTP动词方法,为不同的访问路径,指定回调函数;最后,挂载到某个路径。

    var router = express.Router();

    router.get(‘/’, function(req, res) {

    res.send(‘首页’);

    });

    router.get(‘/about’, function(req, res) {

    res.send(‘关于’);

    });

    app.use(‘/’, router);

    上面代码先定义了两个访问路径,然后将它们挂载到根目录。如果最后一行改为app.use(‘/app’, router),则相当于为/app和/app/about这两个路径,指定了回调函数。

    这种路由器可以自由挂载的做法,为程序带来了更大的灵活性,既可以定义多个路由器实例,也可以为将同一个路由器实例挂载到多个路径。

    router.route方法

    router实例对象的route方法,可以接受访问路径作为参数。

    var router = express.Router();

    router.route(‘/api’)

    .post(function(req, res) {

    // …

    })

    .get(function(req, res) {

    Bear.find(function(err, bears) {

    if (err) res.send(err);

    res.json(bears);

    });

    });

    app.use(‘/’, router);

    router中间件

    use方法为router对象指定中间件,即在数据正式发给用户之前,对数据进行处理。下面就是一个中间件的例子。

    router.use(function(req, res, next) {

    console.log(req.method, req.url);

    next();

    });

    上面代码中,回调函数的next参数,表示接受其他中间件的调用。函数体中的next(),表示将数据传递给下一个中间件。

    注意,中间件的放置顺序很重要,等同于执行顺序。而且,中间件必须放在HTTP动词方法之前,否则不会执行。

    对路径参数的处理

    router对象的param方法用于路径参数的处理,可以

    router.param(‘name’, function(req, res, next, name) {

    // 对name进行验证或其他处理……

    console.log(name);

    req.name = name;

    next();

    });

    router.get(‘/hello/:name’, function(req, res) {

    res.send('hello ’ + req.name + ‘!’);

    });

    上面代码中,get方法为访问路径指定了name参数,param方法则是对name参数进行处理。注意,param方法必须放在HTTP动词方法之前。

    app.route

    假定app是Express的实例对象,Express 4.0为该对象提供了一个route属性。app.route实际上是express.Router()的缩写形式,除了直接挂载到根路径。因此,对同一个路径指定get和post方法的回调函数,可以写成链式形式。

    最后

    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

    因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    img

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
    g-DzWT95ra-1714857483003)]

    [外链图片转存中…(img-ZLaXyoZ4-1714857483003)]

    既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

    如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值