搜索

首页  >  问答  >  正文

node.js - express中app.render和res.render方法有哪些具体的区别?

我看了官方的api文档,但还是有点不明白,希望大家能够给我通俗点的解释,谢谢^_^

迷茫迷茫2784 天前618

全部回复(1)我来回复

  • 天蓬老师

    天蓬老师2017-04-17 13:23:56

    文档里说的其实还好

    Think of app.render() as a utility function for generating rendered view strings. Internally res.render() uses app.render() to render views.

    app.render当成一个生成视图的工具,而且res.render内部也是调用了app.render

    区别是这样,app.render只负责生成视图,你会发现它是没能力把视图响应给客户端(浏览器)的,只有res.render手里有response对象,可以把视图响应给客户端。

    res.render的伪代码可以看做如下:

    res.render = function(view, locals, cb){
        app.render(view, locals, function(err, html){
            if(typeof cb !== 'undefined'){
                return cb(err, html);
            }
            res.send(html);
        });
    };

    回复
    0
  • 取消回复