Javascript 如何使用渲染';s第二个参数';当地人';关于pug文件中的脚本?
您好首先感谢您对我在stackoverflow中的第一个问题的帮助 我的任务是“如何在pug文件中的脚本上使用渲染的第二个参数‘locals’” 在index.js中Javascript 如何使用渲染';s第二个参数';当地人';关于pug文件中的脚本?,javascript,pug,Javascript,Pug,您好首先感谢您对我在stackoverflow中的第一个问题的帮助 我的任务是“如何在pug文件中的脚本上使用渲染的第二个参数‘locals’” 在index.js中 router.get('/', function(req, res, next) { Movie.find({}).then((movies)=>{ res.render('index', {movies:movies}); }).catch((err)=>{ console.log(err)
router.get('/', function(req, res, next) {
Movie.find({}).then((movies)=>{
res.render('index', {movies:movies});
}).catch((err)=>{
console.log(err);
});
};
在索引中。帕格
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输出为“uncatched reference error:movie not defined”
在“a(href='/edit/'+movie.\u id){movie.title}”上,电影正在运行,但是,
在“console.log(movie)”上,它不是
我认为范围不重要,声明也没有问题
问题是什么?如何在pug文件中使用脚本上的局部变量
再一次,非常感谢你的帮助 当然没有定义。了解正在发生的事情:
- 帕格正在呈现一个HTML文件。也就是说,它是一个模板,你用值填充它。帕格将“烘焙”所有这些并输出一个HTML文件。好
- 此文件包含一行代码,作为文本:
。很好console.log(movie)
- 现在,这个HTML文件被发送到浏览器,在那里它被解析,并执行代码。
浏览器开始执行代码,看到
并说“到底是什么console.log(movie)
?”崩溃:movie
movie未定义
这就是服务器端环境和客户端环境之间的区别。您的文件是在服务器上创建的,但在浏览器中执行,在一台完全不同的机器上,在一个完全不同的环境中执行。这里没有定义电影的方法。你的答案是多么容易理解啊。非常感谢你的帮助。我不完全了解前方的环境,试图在错误的地方寻找原因。非常感谢。