美文网首页
app.render()、res.render()的区别

app.render()、res.render()的区别

作者: 天字一等 | 来源:发表于2018-10-10 16:57 被阅读820次

    您可以在根级别调用app.render,并且只能在路由/中间件中调用res.render。
    app.render总是返回回调函数中的html,而res.render仅在您将回调函数指定为第三个参数时才这样做。如果你调用res.render没有第三个参数/回调函数,渲染的html被发送到客户端,状态码为200。

    app.render

    app.render('index', {title: 'res vs app render'}, function(err, html) {
        console.log(html)
    });
    
    // logs the following string (from default index.jade)
    <!DOCTYPE html><html><head><title>res vs app render</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>res vs app render</h1><p>Welcome to res vs app render</p></body></html>
    

    res.render没有第三个参数

    app.get('/render', function(req, res) {
        res.render('index', {title: 'res vs app render'})
    })
    
    // also renders index.jade but sends it to the client 
    // with status 200 and content-type text/html on GET /render
    

    res.render with third parameter

    app.get('/render', function(req, res) {
        res.render('index', {title: 'res vs app render'}, function(err, html) {
            console.log(html);
            res.send('done');
        })
    })
    
    // logs the same as app.render and sends "done" to the client instead 
    // of the content of index.jade
    

    res.render内部使用app.render渲染模板文件。
    您可以使用render函数创建html电子邮件。根据应用程序的结构,您可能并不总是拥有应用程序对象的访问权限。

    例如在外部路由内:

    app.js

    var routes = require('routes');
    
    app.get('/mail', function(req, res) {
        // app object is available -> app.render
    })
    
    app.get('/sendmail', routes.sendmail);
    

    routes.js

    exports.sendmail = function(req, res) {
        // can't use app.render -> therefore res.render
    }
    

    http://stackoverflow.com/questions/15403791/whats-the-difference-between-app-render-and-res-render-in-express-js

    本站文章除注明转载外,均为本站原创或编译
    转载请明显位置注明出处:node.js – 在express.js中的“app.render”和“res.render”有什么区别?

    相关文章

      网友评论

          本文标题:app.render()、res.render()的区别

          本文链接:https://www.haomeiwen.com/subject/xstmaftx.html