美文网首页
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()的区别

    您可以在根级别调用app.render,并且只能在路由/中间件中调用res.render。app.render总是...

  • res.send , res.render

    渲染内容用res.render(),将会根据views的模板文件进行渲染。如果不想使用views文件夹,想自己设置...

  • node.js 中间件

    1、浏览器发送请求;2、express 接受请求;中间处理的过程3、路由函数处理渲染;4、res.render 渲...

  • 十一、render()、send()

    ●大多数情況下,渲染内容用 res.render(),将会根据 views中的模板文件进行渲染。如果不想使用 vi...

  • 区别

    人和人是有很大区别的,有思想的区别有段位的区别有思考方式的区别有教育的区别身高的区别长相的区别品位的区别衣著打扮的...

  • cocoapods本地私有库

    与公开私有库的区别spec文件区别 podfile区别

  • 源码包管理-源码包与RPM包的区别

    大纲 源码包与 RPM 包的区别 源码包安装过程 源码包与RPM包的区别 1. 区别 安装之前的区别:概念上的区别...

  • 指针和引用的区别

    转自 :c++中,引用和指针的区别 自己小结: (1)非空区别 (2)合法性区别 (3)可修改区别 (4)应用区别

  • ` `,' '," "的区别

    单引号''和双引号"" 两者都是解决变量中间有空格的问题。 在bash中“空格”是一种很特殊的字符,比如在bash...

  • for in for of 的区别

    for in 循环的是索引for of 循环的值 for in遍历数组的索引为字符串数字类型,不可以进行...

网友评论

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

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