如何在 pug 文件中的脚本上使用渲染的第二个参数 'locals'?
how to use render's second parameter 'locals' on script in pug file?
你好首先感谢你对我在Whosebug的第一个问题的帮助。
我的问题是“如何在 pug 文件中的脚本上使用渲染的第二个参数 'locals'”。
在index.js...
router.get('/', function(req, res, next) {
Movie.find({}).then((movies)=>{
res.render('index', {movies:movies});
}).catch((err)=>{
console.log(err);
});
};
在index.pug...
extends layout
block content
ul
each movie in movies
li
a(href='/edit/'+movie._id) #{movie.title}
script(type='text/javascript').
console.log(movie)
并且 console.log 输出是“未捕获的引用错误:电影不是恶魔”。
关于“a(href='/edit/'+movie._id) #{movie.title}”电影正在播放,但是,
在“console.log(电影)”上它不是。
我认为范围不是问题,声明也没有问题。
有什么问题?以及我如何在哈巴狗文件中的脚本中使用当地人?
再来一次,真的很感谢你的帮助!!
当然是未定义的。了解发生了什么:
Pug 正在渲染一个 HTML 文件。意思是,它是一个模板,您可以用值填充它。 Pug 将“烘焙”所有这些并输出一个 HTML 文件。好
此文件包含一行代码,作为文本:console.log(movie)
。很好。
现在,这个 HTML 文件被发送到浏览器,在浏览器中解析并执行代码。
浏览器开始执行代码,看到 console.log(movie)
并说“movie
到底是什么?”崩溃:movie is undefined
.
这是服务器端和客户端环境的区别。您的文件是在服务器上创建的,但在浏览器中执行,这是在完全不同的机器上的完全不同的环境。那里不可能定义 movie
。
你好首先感谢你对我在Whosebug的第一个问题的帮助。
我的问题是“如何在 pug 文件中的脚本上使用渲染的第二个参数 'locals'”。
在index.js...
router.get('/', function(req, res, next) {
Movie.find({}).then((movies)=>{
res.render('index', {movies:movies});
}).catch((err)=>{
console.log(err);
});
};
在index.pug...
extends layout
block content
ul
each movie in movies
li
a(href='/edit/'+movie._id) #{movie.title}
script(type='text/javascript').
console.log(movie)
并且 console.log 输出是“未捕获的引用错误:电影不是恶魔”。
关于“a(href='/edit/'+movie._id) #{movie.title}”电影正在播放,但是, 在“console.log(电影)”上它不是。
我认为范围不是问题,声明也没有问题。
有什么问题?以及我如何在哈巴狗文件中的脚本中使用当地人?
再来一次,真的很感谢你的帮助!!
当然是未定义的。了解发生了什么:
Pug 正在渲染一个 HTML 文件。意思是,它是一个模板,您可以用值填充它。 Pug 将“烘焙”所有这些并输出一个 HTML 文件。好
此文件包含一行代码,作为文本:
console.log(movie)
。很好。现在,这个 HTML 文件被发送到浏览器,在浏览器中解析并执行代码。 浏览器开始执行代码,看到
console.log(movie)
并说“movie
到底是什么?”崩溃:movie is undefined
.
这是服务器端和客户端环境的区别。您的文件是在服务器上创建的,但在浏览器中执行,这是在完全不同的机器上的完全不同的环境。那里不可能定义 movie
。