欢迎光临散文网 会员登陆 & 注册

nodejs:express框架,ejs模块,动态渲染,中间件,路由,界面跳转,终端【诗书画唱】

2021-04-24 19:44 作者:诗书画唱  | 我要投稿

前言:Visual Studio Code简称为vscode,是一款由微软研发的免费、开源的跨平台文本代码编辑器,也是目前前端开发几乎完美的软件开发工具。现在使用Vscode的人越来越多,凭借着免费、开源、跨平台的特点收获了一大批粉丝。界面好看,插件也非常多。

这篇专栏写了一天半的时间!求看官们给个三连!

动态渲染的个人理解:就是模板(比如表格,无序列表等等的模板)不变,内容可变的代码。


这样通过node proServlet.js(node 文件名)的cmd命令输入到终端也可以执行文件


内容查看:


创建Visual Studio code项目时的注意事项


告诉你什么是终端


自定义模块:在js文件中调用另外一个js文件中的函数的代码例子


创建express项目的代码例子(更好的自定义要跳转界面的app.get的方法,就是配置路由)


配置路由就是配置访问地址跳转到对应的内容,界面等等


require出来的基本都是function函数类型


doget和dopost的区别


使用express框架访问默认的index.html的代码例子(有局限性的跳转的app.use的方法,我展示的例子中可能只能跳转默认的index.html界面)


下载ejs模块实现动态渲染,中间件,界面跳转




本期必看

1、搭建express框架

2、学会设置路由

3、学会使用中间件

4、学会使用动态渲染:

创建一个数组,包含有商品(id,名称价格和单位)的信息,创建一个名为pro.html的模板,根据这个模板可以显示所有的商品为一个表格。

let pros = [{id:1,name:'德芙巧克力',price:7.5,unit:'块'}];

将数组中的数据传到pro.html模板上去,将它渲染成一个表格。


个人注释:我暂时把“动态渲染”理解成“由js和html代码的拼接实现的可方便改变内容的模板代码”。

多去写个人注释会对自己更加的方便。


部分学习目标:

1、自定义模块:在js文件中调用另外一个js文件中的函数

2、express框架


单词:

音译:为就我
音译:死丢丢哦


个人总结的注意事项:

记得app.use和app.get设置的访问地址不要一样,不然会访问不了


教程视频学习记录

配置路由就是配置访问地址跳转到对应的内容,界面等等

中间件要写在路由配置前面。

get的添加方式
 


set方法类似于setattribute方法,setattribute方法在JavaWeb中传参等等时会常常用到。而set方法在express框架的传参中可能常常用到。


这个表示8888端口已经被占用,同时启动了多个服务器(不可以这样)。

1.0变1.1说明是进行了小的更新,变2.0说明进行了大的更新



创建Visual Studio code项目时的注意事项

不可以打开包含很多项目的总文件夹,因为这样可能会导致项目之间产生互相的影响。


npm install express -g
下载express模块


【-g就是全局的意思,可以达到一劳永逸,以后创建express的项目后就不用再下express了,不加-g以后就要再下载】

告诉你什么是终端


其实终端可以当作cmd来用cmd命令来下载ejs等的模块,


在VScode中的终端可以理解为cmd命令窗口


自定义模块:在js文件中调用另外一个js文件中的函数的代码例子

平时打开项目时,不要这样打开。直接打开的目录应当是项目

//demo.js

//引入当前文件夹下的module.js中的代码

//./表示demo.js文件所在的当前文件夹

//使用require导入js文件时,可以将.js后缀省略掉

let m = require('./module');

let num = m.add(3,4);

console.log(num);

console.log(m.msg);

//module.js

//exports是一个内置对象,不用定义就可以使用

//表示需要导出的函数和属性的对象

//导出一个函数

exports.add = function(a,b){

    return a + b;

}

//导出一个属性

exports.msg = '给诗书画唱三连!Hello world!\n'

+'看到这句话说明demo.js成功调用module.js中的内容!';




创建express项目的代码例子(更好的自定义要跳转界面的app.get的方法,就是配置路由)

doget和dopost的区别


1

npm install express -g
下载express模块

记得按回车键


2

{

    "name":"helloapp",

    "description":"我的第一个express项目",

    "version":"1.0",

    "private":true,

    "dependencies":{

        "express":"4.x"

    }

}


let express=require("express");


let app=express();


//app.use(express.static(__dirname+"/public"));


app.get("/",function(requst,response){


response.send("欢迎访问本网站!")


});


app.listen(8888);


console.log("服务器启动完毕!访问地址:http://127.0.0.1:8888")

访问路径:http://127.0.0.1:8888
不写就是默认访问地址http://127.0.0.1:8888/
音译:路尺
let routes = require('./routes/index')(app);其实是在执行函数


require出来的基本都是function函数类型


使用express框架访问默认的index.html的代码例子(有局限性的跳转的app.use的方法,我展示的例子中可能只能跳转默认的index.html界面)



<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8">

        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>express框架演示</title>

    </head>

    <body>

        <h1>Hello world</h1>

    </body>

</html>


let express=require("express");


let app=express();


app.use(express.static(__dirname+"/public"));


// app.get("/",function(requst,response){


// response.send("欢迎访问本网站!")


// });


app.listen(8888);


console.log("服务器启动完毕!访问地址:http://127.0.0.1:8888")

访问地址:http://127.0.0.1:8888 

下载ejs模块实现动态渲染,中间件,界面跳转



npm install ejs -g

记得按回车

//routes/index.js

//专门用来配置路由的文件

module.exports = function(app){

    //http://127.0.0.1:8888/

    app.get('/',function(req,res){

        //在页面上显示欢迎访问本网站

        //res.send('<h1>欢迎访问本网站</h1>');

        //设置显示在模板上的数据

        const a = [

            {title:'百度',url:'http://www.baidu.com',time:'2021-5-1'},

            {title:'淘宝',url:'http://www.taobao.com',time:'2021-11-11'}

        ];

        //根据data.html的模板内容来显示页面

        res.render('data',{webData: a,tt: '动态传递的标题'});

    });

    //http://127.0.0.1:8888/tologin

    app.get('/tologin',function(req,res){

        res.send('<h1>登录页面</h1>');

    });

    //http://127.0.0.1:8888/reg

    app.get('/reg',function(req,res){

        res.send('<h1>注册页面</h1>');

    });

}

<html>

    <head></head>

    <body>

        <h1><%=tt %></h1>

        <ul>

            <%for(let i = 0;i < webData.length;i ++){ %>

                <li>

                    <a href='<%=webData[i].url %>'>

                        <%=webData[i].title %>

                    </a>

                    <%=webData[i].time %>

                </li>

            <%} %>

        </ul>

    </body>

</html>

//index.js

//导入express模块

let express = require('express');

//导入ejs模块

let ejs = require('ejs');

//获取框架执行对象

let app = express();

//渲染根目录下的html文件

//如果不执行下面的这句代码,就会默认渲染views目录下的html文件

//app.set('views',__dirname);

//以html语法规则来解析指定的html页面

app.set('view engine','html');

app.engine('.html',ejs.__express);

//__dirname表示根目录

//public表示根目录下的public文件夹

//设置public/index.html为默认首页

//app.use(express.static(__dirname + '/public'));

//添加中间件处理程序

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

    console.log('中文乱码处理');

    //继续执行后面的中间件

    next();

});

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

    console.log('日志处理');

    next();

});

//http://127.0.0.1:8888/login

//当输入的访问地址中匹配有/login时才执行这个中间件的代码

app.use('/login',function(req,res,next){

    console.log('会话处理');

})

//导入路由配置方法1:

//let routes = require('./routes/index');

//routes(app);

//导入路由配置方法2(更简单的写法):

let routes = require('./routes/index')(app);

//设置服务器的端口号

app.listen(8888);


console.log('服务器启动完毕,访问地址http://127.0.0.1:8888/');

访问http://127.0.0.1:8888/login时的结果
http://127.0.0.1:8888/tologin
http://127.0.0.1:8888/reg
http://127.0.0.1:8888/



本期必看

1、搭建express框架

2、学会设置路由

3、学会使用中间件

4、学会使用动态渲染:

创建一个数组,包含有商品(id,名称价格和单位)的信息,创建一个名为pro.html的模板,根据这个模板可以显示所有的商品为一个表格。

let pros = [{id:1,name:'德芙巧克力',price:7.5,unit:'块'}];

将数组中的数据传到pro.html模板上去,将它渲染成一个表格。

module.exports = function(app){


    app.get('/pro',function(req,res){


let pros = [{id:1,name:'德芙巧克力',price:7.5,unit:'块'},

{id:2,name:'德芙巧克力2',price:7.6,unit:'块'},

{id:3,name:'德芙巧克力3',price:7.7,unit:'块'}];


        res.render('proViews',{webData: pros});

        //——>这里的proViews指的是views文件夹下的proViews.html,就是要跳转的界面

    });

  

}

<html>

    <head></head>

    <body>

   <!--{id:2,name:'德芙巧克力2',price:7.6,unit:'块'}   -->

        <table border="1px">

         <tr> <th>商品编号</th> <th>商品名称</th>

             <th>商品价格</th> <th>商品单位</th></tr>  

            <%for(let i = 0;i < webData.length;i ++){ %>

                <tr>

                    <td>

                        <%=webData[i].id %>

                    </td>

                    <td>

                        <%=webData[i].name%>

                    </td>

                    <td>

                        <%=webData[i].price%>

                    </td>

                    <td>

                        <%=webData[i].unit%>

                    </td>

                </tr>

            <%} %>

        </table>

    </body>

</html>


let express = require('express');

let ejs = require('ejs');

let app = express();

app.set('view engine','html');

app.engine('.html',ejs.__express);


//个人注释:“./routes/pro”指的是routes文件夹下的pro.js文件:

let routes = require('./routes/pro')(app);

//——>这段代码不可以少,其余部分基本是固定的


app.listen(8888);


console.log('服务器启动完毕,访问地址http://127.0.0.1:8888/pro');

//——>这个访问路径和routes文件夹下的pro.js文件中用get设置的访问路径有关


http://127.0.0.1:8888/pro


nodejs:express框架,ejs模块,动态渲染,中间件,路由,界面跳转,终端【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律