zoukankan      html  css  js  c++  java
  • node.js 11 Web框架Express 介绍,安装,静态页面,路由

    本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815.html
    前面介绍了node.js的文件模块,http server以及静态网站的创建。有了这些知识作为基础,我们可以了解一下node.js的Web框架了。

    从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的。对于大型应用而言,这个投入是值得的。如果需要在较短的时间开发小型web应用,就值得商榷了。

    好在有了node.js的出现,出现了像Express这样的轻量级,灵活的web框架,中小型web应用的开发速度就有了飞速的提升。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    express.js

    node.js Web框架

    Java的世界里,Spring的使用目前处于绝对优势。但是其他语言就不一样了,无论node.js还是python,都有多个web应用框架。尤其是node.js,web框架较多,业界甚至评出了10大node.js web框架。不过不要惊慌,万变不离其宗,很多node.js web框架都是在Express的基础上开发的。这也是为什么在我的node.js系列里一定会出现node.js。最近炙手可热的框架koa也是之前Express的一帮开发人员后来做的,后面我也会专门写一篇介绍Koa。

    之所以介绍Express,一是因为很多node.js框架都是在Express基础上的,另一个原因是Express非常轻便,上手很快,快到做一个CRUD的时间可以缩短到几个小时或者更短。这让我想起若干年前,我在使用Java Blueprint EJB做一个CRUD用了大约2天时间,包括了服务器的配置,在不同的web server上调试。然而node.js不需要这些,因为http server 以及Application server都是程序员自己用node.js代码写的。从另一个层面来讲,真正的大型企业级应用,我个人不推荐node.js。小型轻量级应用,node.js是首选。

    Express JS

    Github上收获了47.7k个星,目前来看是下载量最多的node.js框架。我之前介绍的node.js博客系统Ghost使用的web框架就是Express。

    通过Express可以提供静态网站服务,路由,中间件,以及与模板引擎配合使用。

    Express JS安装运行

    安装通过npm进行。

    1. 安装express "npm install express --save"
    D:Projects
    odejsNodeDemoforms>npm install express --save  
    npm WARN forms@1.0.0 No description  
    npm WARN forms@1.0.0 No repository field.  
      
    + express@4.17.1  
    added 50 packages from 37 contributors and audited 127 packages in 11.149s  
    found 0 vulnerabilities
    
    1. 在第一步完成后,express就已经在本地安装完成。但是没办法像create-react-app那样创建程序框架。好在express有一个程序生成器,express-generator。通过命令"npm install express-generator -g"即可安装。
    D:Projects
    odejsNodeDemoforms>npm install -g express-generator  
    D:Program Files
    odejs
    ode_globalexpress -> D:Program Files
    odejs
    ode_global
    ode_modulesexpress-generatorinexpress-cli.js  
    + express-generator@4.16.1  
    added 10 packages from 13 contributors in 6.346s
    
    1. 运行"express"命令创建项目文件

    由于我们已经建好了forms项目目录,所以直接运行express就可以在目录下创建项目文件和子目录。如果项目目录没有创建号,可以运行"express "。该命令会自动创建目录,并在目录下创建相关子目录和文件。

    D:Projects
    odejsNodeDemoforms>express  
      
      warning: the default view engine will not be jade in future releases  
      warning: use `--view=jade' or `--help' for additional options  
      
    destination is not empty, continue? [y/N] y  
      
       create : public  
       create : publicjavascripts  
       create : publicimages  
       create : publicstylesheets  
       create : publicstylesheetsstyle.css  
       create : routes  
       create : routesindex.js  
       create : routes\users.js  
       create : views  
       create : viewserror.jade  
       create : viewsindex.jade  
       create : viewslayout.jade  
       create : app.js  
       create : package.json  
       create : bin  
       create : binwww  
      
       install dependencies:  
         > npm install  
      
       run the app:  
         > SET DEBUG=node10:* & npm start
    

    注意我们在运行时,系统有提示“destination is not empty, continue? [y/N]”,直接输入"y"就好。这是因为我们在forms目录下创建,并且该目录下已有部分通过"npm -i"创建的项目文件。

    1. 运行"npm install"安装express相关依赖包
    D:Projects
    odejsNodeDemoforms>npm install  
    added 4 packages from 3 contributors, removed 2 packages, updated 16 packages and audited 141 packages in 12.091s  
    found 0 vulnerabilities
    
    1. 运行项目"npm start"
    D:Projects
    odejsNodeDemoforms>npm start  
      
    > forms@0.0.0 start D:Projects
    odejsNodeDemoforms  
    > node ./bin/www  
      
    GET / 200 17.703 ms - 207  
    GET /stylesheets/style.css 200 5.473 ms - 111
    

    此时,打开自己的浏览器,访问http://localhos:3000/即可显示express创建的项目的主页。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    expressjs homepage

    ExpressJS 静态页面处理

    使用框架有一个好处,那就是很多底层的处理不需要自己通过代码一行一行敲,框架的价值在于可以提供很多封装好的接口。

    在静态页面的处理上,我们不需要在通过fs模块读取文件,通过response返回给客户端。在express中,只需要调用response.render()方法,传入模板文件名称即可。

    示例代码:/routes/index.js

    //引入express  
    var express = require('express');  
    var router = express.Router();  
      
    /* 获取静态页面 */  
    router.get('/', function(req, res, next) {  
      res.render('index', { title: 'Express' });  
    });  
    //导出抹开  
    module.exports = router;
    

    上面的代码从express创建的项目的代码中抽取,可以看到返回静态页面只需要引入express模块,调用路由Router,然后通过get方法,调用response.render()读取到index模板文件,将该静态模板文件返回客户端即可。注意,在这里有一个{title:'Express'}是模板中的参数,我们后面会介绍。

    短短数行代码,没有绕人的逻辑,静态页面处理就完成了。

    ExpressJS 路由

    在上面的静态页面处理过程中,我们已经使用了路由Router。路由的具体使用方法如下:

    1. 在入口文件app.js中引入实际处理的路由。比如我们实际处理静态页面index的路由是/routes/index.js, 那么在app.js中我们可以通过下列代码引入index 路由router
    var indexRouter = require('./routes/index');
    
    1. 设定静态页面/模板目录
    app.set('views', path.join(__dirname, 'views'));  
    ......  
    //中间省略数行代码  
    ......  
    app.use(express.static(path.join(__dirname, 'public')));
    

    这里的__dirname表示当前目录,这行代码指定了静态页面/模板的目录。

    3.通过app.use指定相关路径的处理路由

    app.use('/', indexRouter);
    

    这里表示,当访问网站时,系统会使用index路由处理,即/routes/index.js。

    而前面我们讲到过在index.js中,系统调用了res.render()方法传入模板文件,即返回浏览器静态页面。

    ExpressJS 动态页面处理

    通过res.send()方法进行。

    router.get('/', function(req, res, next) {  
      res.send('respond with a resource');  
    });
    

    示例代码可以查看/routes/users.js

    这就是处理路径/users的路由,将路由信息在app.js中写入即可。

    var usersRouter = require('./routes/users');  
    app.use('/users', usersRouter);
    

    当用户通过浏览器访问http://localhost:3000/users时,系统会调用/routes/users.js中的response.get()方法返回信息给客户端。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    users路由本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815/
    前面介绍了node.js的文件模块,http server以及静态网站的创建。有了这些知识作为基础,我们可以了解一下node.js的Web框架了。

    从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的。对于大型应用而言,这个投入是值得的。如果需要在较短的时间开发小型web应用,就值得商榷了。

    好在有了node.js的出现,出现了像Express这样的轻量级,灵活的web框架,中小型web应用的开发速度就有了飞速的提升。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    express.js

    node.js Web框架

    Java的世界里,Spring的使用目前处于绝对优势。但是其他语言就不一样了,无论node.js还是python,都有多个web应用框架。尤其是node.js,web框架较多,业界甚至评出了10大node.js web框架。不过不要惊慌,万变不离其宗,很多node.js web框架都是在Express的基础上开发的。这也是为什么在我的node.js系列里一定会出现node.js。最近炙手可热的框架koa也是之前Express的一帮开发人员后来做的,后面我也会专门写一篇介绍Koa。

    之所以介绍Express,一是因为很多node.js框架都是在Express基础上的,另一个原因是Express非常轻便,上手很快,快到做一个CRUD的时间可以缩短到几个小时或者更短。这让我想起若干年前,我在使用Java Blueprint EJB做一个CRUD用了大约2天时间,包括了服务器的配置,在不同的web server上调试。然而node.js不需要这些,因为http server 以及Application server都是程序员自己用node.js代码写的。从另一个层面来讲,真正的大型企业级应用,我个人不推荐node.js。小型轻量级应用,node.js是首选。

    Express JS

    Github上收获了47.7k个星,目前来看是下载量最多的node.js框架。我之前介绍的node.js博客系统Ghost使用的web框架就是Express。

    通过Express可以提供静态网站服务,路由,中间件,以及与模板引擎配合使用。

    Express JS安装运行

    安装通过npm进行。

    1. 安装express "npm install express --save"
    D:Projects
    odejsNodeDemoforms>npm install express --save  
    npm WARN forms@1.0.0 No description  
    npm WARN forms@1.0.0 No repository field.  
      
    + express@4.17.1  
    added 50 packages from 37 contributors and audited 127 packages in 11.149s  
    found 0 vulnerabilities
    
    1. 在第一步完成后,express就已经在本地安装完成。但是没办法像create-react-app那样创建程序框架。好在express有一个程序生成器,express-generator。通过命令"npm install express-generator -g"即可安装。
    D:Projects
    odejsNodeDemoforms>npm install -g express-generator  
    D:Program Files
    odejs
    ode_globalexpress -> D:Program Files
    odejs
    ode_global
    ode_modulesexpress-generatorinexpress-cli.js  
    + express-generator@4.16.1  
    added 10 packages from 13 contributors in 6.346s
    
    1. 运行"express"命令创建项目文件

    由于我们已经建好了forms项目目录,所以直接运行express就可以在目录下创建项目文件和子目录。如果项目目录没有创建号,可以运行"express "。该命令会自动创建目录,并在目录下创建相关子目录和文件。

    D:Projects
    odejsNodeDemoforms>express  
      
      warning: the default view engine will not be jade in future releases  
      warning: use `--view=jade' or `--help' for additional options  
      
    destination is not empty, continue? [y/N] y  
      
       create : public  
       create : publicjavascripts  
       create : publicimages  
       create : publicstylesheets  
       create : publicstylesheetsstyle.css  
       create : routes  
       create : routesindex.js  
       create : routes\users.js  
       create : views  
       create : viewserror.jade  
       create : viewsindex.jade  
       create : viewslayout.jade  
       create : app.js  
       create : package.json  
       create : bin  
       create : binwww  
      
       install dependencies:  
         > npm install  
      
       run the app:  
         > SET DEBUG=node10:* & npm start
    

    注意我们在运行时,系统有提示“destination is not empty, continue? [y/N]”,直接输入"y"就好。这是因为我们在forms目录下创建,并且该目录下已有部分通过"npm -i"创建的项目文件。

    1. 运行"npm install"安装express相关依赖包
    D:Projects
    odejsNodeDemoforms>npm install  
    added 4 packages from 3 contributors, removed 2 packages, updated 16 packages and audited 141 packages in 12.091s  
    found 0 vulnerabilities
    
    1. 运行项目"npm start"
    D:Projects
    odejsNodeDemoforms>npm start  
      
    > forms@0.0.0 start D:Projects
    odejsNodeDemoforms  
    > node ./bin/www  
      
    GET / 200 17.703 ms - 207  
    GET /stylesheets/style.css 200 5.473 ms - 111
    

    此时,打开自己的浏览器,访问http://localhos:3000/即可显示express创建的项目的主页。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    expressjs homepage

    ExpressJS 静态页面处理

    使用框架有一个好处,那就是很多底层的处理不需要自己通过代码一行一行敲,框架的价值在于可以提供很多封装好的接口。

    在静态页面的处理上,我们不需要在通过fs模块读取文件,通过response返回给客户端。在express中,只需要调用response.render()方法,传入模板文件名称即可。

    示例代码:/routes/index.js

    //引入express  
    var express = require('express');  
    var router = express.Router();  
      
    /* 获取静态页面 */  
    router.get('/', function(req, res, next) {  
      res.render('index', { title: 'Express' });  
    });  
    //导出抹开  
    module.exports = router;
    

    上面的代码从express创建的项目的代码中抽取,可以看到返回静态页面只需要引入express模块,调用路由Router,然后通过get方法,调用response.render()读取到index模板文件,将该静态模板文件返回客户端即可。注意,在这里有一个{title:'Express'}是模板中的参数,我们后面会介绍。

    短短数行代码,没有绕人的逻辑,静态页面处理就完成了。

    ExpressJS 路由

    在上面的静态页面处理过程中,我们已经使用了路由Router。路由的具体使用方法如下:

    1. 在入口文件app.js中引入实际处理的路由。比如我们实际处理静态页面index的路由是/routes/index.js, 那么在app.js中我们可以通过下列代码引入index 路由router
    var indexRouter = require('./routes/index');
    
    1. 设定静态页面/模板目录
    app.set('views', path.join(__dirname, 'views'));  
    ......  
    //中间省略数行代码  
    ......  
    app.use(express.static(path.join(__dirname, 'public')));
    

    这里的__dirname表示当前目录,这行代码指定了静态页面/模板的目录。

    3.通过app.use指定相关路径的处理路由

    app.use('/', indexRouter);
    

    这里表示,当访问网站时,系统会使用index路由处理,即/routes/index.js。

    而前面我们讲到过在index.js中,系统调用了res.render()方法传入模板文件,即返回浏览器静态页面。

    ExpressJS 动态页面处理

    通过res.send()方法进行。

    router.get('/', function(req, res, next) {  
      res.send('respond with a resource');  
    });
    

    示例代码可以查看/routes/users.js

    这就是处理路径/users的路由,将路由信息在app.js中写入即可。

    var usersRouter = require('./routes/users');  
    app.use('/users', usersRouter);
    

    当用户通过浏览器访问http://localhost:3000/users时,系统会调用/routes/users.js中的response.get()方法返回信息给客户端。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    users路由本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815/
    前面介绍了node.js的文件模块,http server以及静态网站的创建。有了这些知识作为基础,我们可以了解一下node.js的Web框架了。

    从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的。对于大型应用而言,这个投入是值得的。如果需要在较短的时间开发小型web应用,就值得商榷了。

    好在有了node.js的出现,出现了像Express这样的轻量级,灵活的web框架,中小型web应用的开发速度就有了飞速的提升。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    express.js

    node.js Web框架

    Java的世界里,Spring的使用目前处于绝对优势。但是其他语言就不一样了,无论node.js还是python,都有多个web应用框架。尤其是node.js,web框架较多,业界甚至评出了10大node.js web框架。不过不要惊慌,万变不离其宗,很多node.js web框架都是在Express的基础上开发的。这也是为什么在我的node.js系列里一定会出现node.js。最近炙手可热的框架koa也是之前Express的一帮开发人员后来做的,后面我也会专门写一篇介绍Koa。

    之所以介绍Express,一是因为很多node.js框架都是在Express基础上的,另一个原因是Express非常轻便,上手很快,快到做一个CRUD的时间可以缩短到几个小时或者更短。这让我想起若干年前,我在使用Java Blueprint EJB做一个CRUD用了大约2天时间,包括了服务器的配置,在不同的web server上调试。然而node.js不需要这些,因为http server 以及Application server都是程序员自己用node.js代码写的。从另一个层面来讲,真正的大型企业级应用,我个人不推荐node.js。小型轻量级应用,node.js是首选。

    Express JS

    Github上收获了47.7k个星,目前来看是下载量最多的node.js框架。我之前介绍的node.js博客系统Ghost使用的web框架就是Express。

    通过Express可以提供静态网站服务,路由,中间件,以及与模板引擎配合使用。

    Express JS安装运行

    安装通过npm进行。

    1. 安装express "npm install express --save"
    D:Projects
    odejsNodeDemoforms>npm install express --save  
    npm WARN forms@1.0.0 No description  
    npm WARN forms@1.0.0 No repository field.  
      
    + express@4.17.1  
    added 50 packages from 37 contributors and audited 127 packages in 11.149s  
    found 0 vulnerabilities
    
    1. 在第一步完成后,express就已经在本地安装完成。但是没办法像create-react-app那样创建程序框架。好在express有一个程序生成器,express-generator。通过命令"npm install express-generator -g"即可安装。
    D:Projects
    odejsNodeDemoforms>npm install -g express-generator  
    D:Program Files
    odejs
    ode_globalexpress -> D:Program Files
    odejs
    ode_global
    ode_modulesexpress-generatorinexpress-cli.js  
    + express-generator@4.16.1  
    added 10 packages from 13 contributors in 6.346s
    
    1. 运行"express"命令创建项目文件

    由于我们已经建好了forms项目目录,所以直接运行express就可以在目录下创建项目文件和子目录。如果项目目录没有创建号,可以运行"express "。该命令会自动创建目录,并在目录下创建相关子目录和文件。

    D:Projects
    odejsNodeDemoforms>express  
      
      warning: the default view engine will not be jade in future releases  
      warning: use `--view=jade' or `--help' for additional options  
      
    destination is not empty, continue? [y/N] y  
      
       create : public  
       create : publicjavascripts  
       create : publicimages  
       create : publicstylesheets  
       create : publicstylesheetsstyle.css  
       create : routes  
       create : routesindex.js  
       create : routes\users.js  
       create : views  
       create : viewserror.jade  
       create : viewsindex.jade  
       create : viewslayout.jade  
       create : app.js  
       create : package.json  
       create : bin  
       create : binwww  
      
       install dependencies:  
         > npm install  
      
       run the app:  
         > SET DEBUG=node10:* & npm start
    

    注意我们在运行时,系统有提示“destination is not empty, continue? [y/N]”,直接输入"y"就好。这是因为我们在forms目录下创建,并且该目录下已有部分通过"npm -i"创建的项目文件。

    1. 运行"npm install"安装express相关依赖包
    D:Projects
    odejsNodeDemoforms>npm install  
    added 4 packages from 3 contributors, removed 2 packages, updated 16 packages and audited 141 packages in 12.091s  
    found 0 vulnerabilities
    
    1. 运行项目"npm start"
    D:Projects
    odejsNodeDemoforms>npm start  
      
    > forms@0.0.0 start D:Projects
    odejsNodeDemoforms  
    > node ./bin/www  
      
    GET / 200 17.703 ms - 207  
    GET /stylesheets/style.css 200 5.473 ms - 111
    

    此时,打开自己的浏览器,访问http://localhos:3000/即可显示express创建的项目的主页。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    expressjs homepage

    ExpressJS 静态页面处理

    使用框架有一个好处,那就是很多底层的处理不需要自己通过代码一行一行敲,框架的价值在于可以提供很多封装好的接口。

    在静态页面的处理上,我们不需要在通过fs模块读取文件,通过response返回给客户端。在express中,只需要调用response.render()方法,传入模板文件名称即可。

    示例代码:/routes/index.js

    //引入express  
    var express = require('express');  
    var router = express.Router();  
      
    /* 获取静态页面 */  
    router.get('/', function(req, res, next) {  
      res.render('index', { title: 'Express' });  
    });  
    //导出抹开  
    module.exports = router;
    

    上面的代码从express创建的项目的代码中抽取,可以看到返回静态页面只需要引入express模块,调用路由Router,然后通过get方法,调用response.render()读取到index模板文件,将该静态模板文件返回客户端即可。注意,在这里有一个{title:'Express'}是模板中的参数,我们后面会介绍。

    短短数行代码,没有绕人的逻辑,静态页面处理就完成了。

    ExpressJS 路由

    在上面的静态页面处理过程中,我们已经使用了路由Router。路由的具体使用方法如下:

    1. 在入口文件app.js中引入实际处理的路由。比如我们实际处理静态页面index的路由是/routes/index.js, 那么在app.js中我们可以通过下列代码引入index 路由router
    var indexRouter = require('./routes/index');
    
    1. 设定静态页面/模板目录
    app.set('views', path.join(__dirname, 'views'));  
    ......  
    //中间省略数行代码  
    ......  
    app.use(express.static(path.join(__dirname, 'public')));
    

    这里的__dirname表示当前目录,这行代码指定了静态页面/模板的目录。

    3.通过app.use指定相关路径的处理路由

    app.use('/', indexRouter);
    

    这里表示,当访问网站时,系统会使用index路由处理,即/routes/index.js。

    而前面我们讲到过在index.js中,系统调用了res.render()方法传入模板文件,即返回浏览器静态页面。

    ExpressJS 动态页面处理

    通过res.send()方法进行。

    router.get('/', function(req, res, next) {  
      res.send('respond with a resource');  
    });
    

    示例代码可以查看/routes/users.js

    这就是处理路径/users的路由,将路由信息在app.js中写入即可。

    var usersRouter = require('./routes/users');  
    app.use('/users', usersRouter);
    

    当用户通过浏览器访问http://localhost:3000/users时,系统会调用/routes/users.js中的response.get()方法返回信息给客户端。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    users路由本文参考原文-http://bjbsair.com/2020-03-22/tech-info/2815/
    前面介绍了node.js的文件模块,http server以及静态网站的创建。有了这些知识作为基础,我们可以了解一下node.js的Web框架了。

    从Java一路过来的朋友可能觉得Web框架还是比较重量级的,比如最初的Struts到后来的Spring,中间Apache组织也有过一些其他的模板框架,总体而言无论是从使用还是学习来讲,都是需要花费较多时间的。对于大型应用而言,这个投入是值得的。如果需要在较短的时间开发小型web应用,就值得商榷了。

    好在有了node.js的出现,出现了像Express这样的轻量级,灵活的web框架,中小型web应用的开发速度就有了飞速的提升。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    express.js

    node.js Web框架

    Java的世界里,Spring的使用目前处于绝对优势。但是其他语言就不一样了,无论node.js还是python,都有多个web应用框架。尤其是node.js,web框架较多,业界甚至评出了10大node.js web框架。不过不要惊慌,万变不离其宗,很多node.js web框架都是在Express的基础上开发的。这也是为什么在我的node.js系列里一定会出现node.js。最近炙手可热的框架koa也是之前Express的一帮开发人员后来做的,后面我也会专门写一篇介绍Koa。

    之所以介绍Express,一是因为很多node.js框架都是在Express基础上的,另一个原因是Express非常轻便,上手很快,快到做一个CRUD的时间可以缩短到几个小时或者更短。这让我想起若干年前,我在使用Java Blueprint EJB做一个CRUD用了大约2天时间,包括了服务器的配置,在不同的web server上调试。然而node.js不需要这些,因为http server 以及Application server都是程序员自己用node.js代码写的。从另一个层面来讲,真正的大型企业级应用,我个人不推荐node.js。小型轻量级应用,node.js是首选。

    Express JS

    Github上收获了47.7k个星,目前来看是下载量最多的node.js框架。我之前介绍的node.js博客系统Ghost使用的web框架就是Express。

    通过Express可以提供静态网站服务,路由,中间件,以及与模板引擎配合使用。

    Express JS安装运行

    安装通过npm进行。

    1. 安装express "npm install express --save"
    D:Projects
    odejsNodeDemoforms>npm install express --save  
    npm WARN forms@1.0.0 No description  
    npm WARN forms@1.0.0 No repository field.  
      
    + express@4.17.1  
    added 50 packages from 37 contributors and audited 127 packages in 11.149s  
    found 0 vulnerabilities
    
    1. 在第一步完成后,express就已经在本地安装完成。但是没办法像create-react-app那样创建程序框架。好在express有一个程序生成器,express-generator。通过命令"npm install express-generator -g"即可安装。
    D:Projects
    odejsNodeDemoforms>npm install -g express-generator  
    D:Program Files
    odejs
    ode_globalexpress -> D:Program Files
    odejs
    ode_global
    ode_modulesexpress-generatorinexpress-cli.js  
    + express-generator@4.16.1  
    added 10 packages from 13 contributors in 6.346s
    
    1. 运行"express"命令创建项目文件

    由于我们已经建好了forms项目目录,所以直接运行express就可以在目录下创建项目文件和子目录。如果项目目录没有创建号,可以运行"express "。该命令会自动创建目录,并在目录下创建相关子目录和文件。

    D:Projects
    odejsNodeDemoforms>express  
      
      warning: the default view engine will not be jade in future releases  
      warning: use `--view=jade' or `--help' for additional options  
      
    destination is not empty, continue? [y/N] y  
      
       create : public  
       create : publicjavascripts  
       create : publicimages  
       create : publicstylesheets  
       create : publicstylesheetsstyle.css  
       create : routes  
       create : routesindex.js  
       create : routes\users.js  
       create : views  
       create : viewserror.jade  
       create : viewsindex.jade  
       create : viewslayout.jade  
       create : app.js  
       create : package.json  
       create : bin  
       create : binwww  
      
       install dependencies:  
         > npm install  
      
       run the app:  
         > SET DEBUG=node10:* & npm start
    

    注意我们在运行时,系统有提示“destination is not empty, continue? [y/N]”,直接输入"y"就好。这是因为我们在forms目录下创建,并且该目录下已有部分通过"npm -i"创建的项目文件。

    1. 运行"npm install"安装express相关依赖包
    D:Projects
    odejsNodeDemoforms>npm install  
    added 4 packages from 3 contributors, removed 2 packages, updated 16 packages and audited 141 packages in 12.091s  
    found 0 vulnerabilities
    
    1. 运行项目"npm start"
    D:Projects
    odejsNodeDemoforms>npm start  
      
    > forms@0.0.0 start D:Projects
    odejsNodeDemoforms  
    > node ./bin/www  
      
    GET / 200 17.703 ms - 207  
    GET /stylesheets/style.css 200 5.473 ms - 111
    

    此时,打开自己的浏览器,访问http://localhos:3000/即可显示express创建的项目的主页。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    expressjs homepage

    ExpressJS 静态页面处理

    使用框架有一个好处,那就是很多底层的处理不需要自己通过代码一行一行敲,框架的价值在于可以提供很多封装好的接口。

    在静态页面的处理上,我们不需要在通过fs模块读取文件,通过response返回给客户端。在express中,只需要调用response.render()方法,传入模板文件名称即可。

    示例代码:/routes/index.js

    //引入express  
    var express = require('express');  
    var router = express.Router();  
      
    /* 获取静态页面 */  
    router.get('/', function(req, res, next) {  
      res.render('index', { title: 'Express' });  
    });  
    //导出抹开  
    module.exports = router;
    

    上面的代码从express创建的项目的代码中抽取,可以看到返回静态页面只需要引入express模块,调用路由Router,然后通过get方法,调用response.render()读取到index模板文件,将该静态模板文件返回客户端即可。注意,在这里有一个{title:'Express'}是模板中的参数,我们后面会介绍。

    短短数行代码,没有绕人的逻辑,静态页面处理就完成了。

    ExpressJS 路由

    在上面的静态页面处理过程中,我们已经使用了路由Router。路由的具体使用方法如下:

    1. 在入口文件app.js中引入实际处理的路由。比如我们实际处理静态页面index的路由是/routes/index.js, 那么在app.js中我们可以通过下列代码引入index 路由router
    var indexRouter = require('./routes/index');
    
    1. 设定静态页面/模板目录
    app.set('views', path.join(__dirname, 'views'));  
    ......  
    //中间省略数行代码  
    ......  
    app.use(express.static(path.join(__dirname, 'public')));
    

    这里的__dirname表示当前目录,这行代码指定了静态页面/模板的目录。

    3.通过app.use指定相关路径的处理路由

    app.use('/', indexRouter);
    

    这里表示,当访问网站时,系统会使用index路由处理,即/routes/index.js。

    而前面我们讲到过在index.js中,系统调用了res.render()方法传入模板文件,即返回浏览器静态页面。

    ExpressJS 动态页面处理

    通过res.send()方法进行。

    router.get('/', function(req, res, next) {  
      res.send('respond with a resource');  
    });
    

    示例代码可以查看/routes/users.js

    这就是处理路径/users的路由,将路由信息在app.js中写入即可。

    var usersRouter = require('./routes/users');  
    app.use('/users', usersRouter);
    

    当用户通过浏览器访问http://localhost:3000/users时,系统会调用/routes/users.js中的response.get()方法返回信息给客户端。

    node.js 10 Web框架Express 介绍,安装,静态页面,路由

    users路由

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/lihanlin/p/12562314.html
Copyright © 2011-2022 走看看