zoukankan      html  css  js  c++  java
  • Express4--说明

    express4.*;
    (1)

     var app = express();
    

      生成一个express实例 app。

    (2)

    app.set('views', path.join(__dirname, 'views’)):
    

      设置 views 文件夹为存放视图文件的目录, 即存放模板文件的地方,__dirname 为全局变量,存储当前正在执行的脚本所在的目录。

    (3)

    app.set('view engine', 'ejs’):
    

      设置视图模板引擎为 ejs。

    (4)

    app.use(favicon(__dirname + '/public/favicon.ico’)):
    

      设置/public/favicon.ico为favicon图标。

    (5)

    app.use(logger('dev’)):
    

      加载日志中间件。

    (6)

    app.use(bodyParser.json()):
    

      加载解析json的中间件。

    (7)

    app.use(bodyParser.urlencoded({ extended: false })):
    

      加载解析urlencoded请求体的中间件。

    (8)

    app.use(cookieParser()):
    

      加载解析cookie的中间件。

    (9)

    app.use(express.static(path.join(__dirname, 'public'))):
    

      设置public文件夹为存放静态文件的目录。

    (10)

    app.use('/', routes);
    app.use('/users', users):
    

      路由控制器。

    (11)

    app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
    });
    

      捕获404错误,并转发到错误处理器。

    (12)

    if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
    message: err.message,
    error: err
    });
    });
    }
    

     开发环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中。

    (13)

    app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
    message: err.message,
    error: {}
    });
    });
    

     生产环境下的错误处理器,将错误信息渲染error模版并显示到浏览器中。

    (14)

    module.exports = app :
    

      导出app实例供其他模块调用。

    我们再看 bin/www 文件:

    #!/usr/bin/env node
    var debug = require('debug')('blog'); var app = require('../app'); app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { debug('Express server listening on port ' + server.address().port); }); 

    (1)

    #!/usr/bin/env node:
    

      表明是 node 可执行文件。

    (2)

    var debug = require('debug')('blog’):
    

      引入debug模块,打印调试日志。

    (3)

    var app = require('../app’):
    

      引入我们上面导出的app实例。

    (4)

    app.set('port', process.env.PORT || 3000):
    

      设置端口号。

    (5)

    var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
    });
    

      启动工程并监听3000端口,成功后打印 Express server listening on port 3000。

    我们再看 routes/index.js 文件:

    var express = require('express');
    var router = express.Router();
    
    /* GET home page. */
    router.get('/', function(req, res) {
    res.render('index', { title: 'Express' });
    });
    
    module.exports = router;
    

      生成一个路由实例用来捕获访问主页的GET请求,导出这个路由并在app.js中通过app.use('/', routes); 加载。这样,当访问主页时,就会调用res.render('index', { title: 'Express' });渲染views/index.ejs模版并显示到浏览器中。

  • 相关阅读:
    Codeforces 1485C Floor and Mod (枚举)
    CodeForces 1195D Submarine in the Rybinsk Sea (算贡献)
    CodeForces 1195C Basketball Exercise (线性DP)
    2021年初寒假训练第24场 B. 庆功会(搜索)
    任务分配(dp)
    开发工具的异常现象
    Telink MESH SDK 如何使用PWM
    Telink BLE MESH PWM波的小结
    [LeetCode] 1586. Binary Search Tree Iterator II
    [LeetCode] 1288. Remove Covered Intervals
  • 原文地址:https://www.cnblogs.com/xuange306/p/4620155.html
Copyright © 2011-2022 走看看