Jade:加载外部javascript和调用函数
我正在学习Express/Node/Jade,现在在Jade文件中,我想包含一个公共文件夹中的javascript文件,只用于页面。 例如,在jade文件中,我键入以下内容:Jade:加载外部javascript和调用函数,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,我正在学习Express/Node/Jade,现在在Jade文件中,我想包含一个公共文件夹中的javascript文件,只用于页面。 例如,在jade文件中,我键入以下内容: script(src='/javascripts/test.js') 在test.js中,我有一个函数 function check_test(){ return "It's working!" } 然后我尝试通过调用Jade中的函数 - var test_response = check_
script(src='/javascripts/test.js')
在test.js中,我有一个函数
function check_test(){
return "It's working!"
}
然后我尝试通过调用Jade中的函数
- var test_response = check_test()
然后我得到一个错误,说“undefined不是一个函数”,test.js根本没有加载。
显然,Jade没有加载文件,它们只是转换成HTML代码
我看了别人的问题,这是我能找到的最接近的一个问题,但它没有给出一个明确的答案。
所以我的问题是:在这种情况下,我应该怎么做才能让它工作
我不想在layout.js中加载文件,因为我只希望test.js只供此页面使用。好吧。。。在第一种情况下,浏览器中发生的事情与服务器上发生的事情不同。因此,Jade是HTML的呈现,因此如果您在浏览器中。这就是ExpressJS shipping(渲染翡翠)的功能。如果您想调用,您的HTML Javascript(Jade的呈现)应该显示Javascript的位置。为埃克斯梅普 在Server.js中
// Get the Javascript in the browser
app.use("/javascripts", express.static("./outJavascripts"));
// Get the URL
app.all("/", function(req, res){
// Render the Jade and Send for the client (Browser)
req.render("myTemplate.jade");
});
在myTemplate.jade中
script(src='/javascripts/test.js')
在“/outJavascripts/test.js”中
如果您这样做,您将意识到它正在运行,即浏览器中的文件“/outJavascripts/test.js”。“check_test”功能不会在服务器上运行。或将所有文件夹放在一个公共文件夹中,例如
public
公共
-Java脚本
-样式表
-图像
然后公开该公用文件夹
app.use(express.static(path.join('public'))代码>
这意味着你可以
script(src='/javascripts/script.js')
链接(rel='stylesheet',href='/stylesheets/style.css')
保存JS文件并将其链接到Jade文件中,如下所示:
script(src="filepath/yourJSfile.js")
然后调用函数,我在这里使用一个按钮,例如:
button(class="btn", onclick='functionName()')
button(class="btn", onclick='functionName()')