Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jade:加载外部javascript和调用函数_Javascript_Node.js_Express_Pug - Fatal编程技术网

Jade:加载外部javascript和调用函数

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_

我正在学习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_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()')