shin
V2EX  ›  Node.js

express 4 这句源码怎么解释?

  •  
  •   shin · Jun 17, 2014 · 4437 views
    This topic created in 4351 days ago, the information mentioned may be changed or developed.
    // set .cache unless explicitly provided
    opts.cache = null == opts.cache
    ? this.enabled('view cache')
    : opts.cache;


    express 4.x application.js app.render()方法中的设置。
    8 replies    2014-06-30 13:49:38 +08:00
    ijse
        1
    ijse  
       Jun 17, 2014   ❤️ 1
    除非明确指定是否启用cache, 默认启用cache
    shin
        2
    shin  
    OP
       Jun 17, 2014
    @ijse

    可否这样理解?
    opts.cache = (null == opts.cache) ? this.enabled('view cache') : opts.cache;

    如果上文 opts.cache 为 undefined,则opts.cache = this.enabled('view cache');

    然后this.enabled('view cache')返回this。

    则opts.cache = this; 通过上下文可知this为application对象。
    kfll
        4
    kfll  
       Jun 18, 2014 via Android
    enabled 返回的是布尔值
    ijse
        5
    ijse  
       Jun 18, 2014
    @shin 就是除非明确指定禁用cache,否则都将启用cache
    hegfirose
        6
    hegfirose  
       Jun 18, 2014
    var cacheOption = (null == opts.cache) ? this.enabled('view cache') : opts.cache;

    opts.cache = cacheOption;

    如果没有设置 opts.cache (opts.cache 为 undefined, undefined == null),则获取 this.enabled('view cache') 的值,否则直接使用 opts.cache 设置的值

    赋值的时候先执行 = 右边的运算
    cyr1l
        7
    cyr1l  
       Jun 20, 2014
    opts.cache = null == opts.cache? this.enabled('view cache'): opts.cache;

    opts.cache = (null == opts.cache? this.enabled('view cache'): opts.cache;)

    opts.cache = ((null == opts.cache)? this.enabled('view cache'): opts.cache;)

    coffee :
    opts.cache = if opts.cache then this.enabled('view cache') else opts.cache

    JavaScript:
    opts.cache = if (null == opts.cache){
    return this.enabled('view cache');
    }else{
    return opts.cache
    }
    ChiChou
        8
    ChiChou  
       Jun 30, 2014
    为何不写成

    opts.cache = opts.cache || this.enabled('view cache');
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   887 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:52 · PVG 04:52 · LAX 13:52 · JFK 16:52
    ♥ Do have faith in what you're doing.