Coc*_*Hot 9 javascript node.js express pug
我正在学习Express/Node/Jade,现在在Jade文件中我想要包含公共文件夹中的javascript文件,仅用于页面.例如,在jade文件中我输入:
script(src='/javascripts/test.js')
Run Code Online (Sandbox Code Playgroud)
和test.js里面我有一个功能
function check_test(){
return "It's working!"
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在Jade中调用函数
- var test_response = check_test()
Run Code Online (Sandbox Code Playgroud)
比我得到的错误说"undefined不是一个函数"而test.js根本没有加载.显然Jade没有加载文件,它们只转换成HTML代码.
我看了别人的问题,这是我能找到的最接近的问题,但它没有提供明确的答案. 在Jade中,如何在外部Javascript中调用函数
所以我的问题是:在这种情况下,我应该怎么做才能使它工作?
我不想在layout.js中加载文件,因为我只希望test.js只能被这个页面使用.
嗯...首先,浏览器中发生的情况与服务器上发生的情况不同。所以 Jade 是 HTML 的渲染,因此如果你在浏览器中。这就是 ExpressJS 发布的内容,即渲染 Jade。如果你想调用,你的 HTML Javascript (Rendering of 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");
});
Run Code Online (Sandbox Code Playgroud)
在 myTemplate.jade 中
script(src='/javascripts/test.js')
Run Code Online (Sandbox Code Playgroud)
在“./outJavascripts/test.js”中
function check_test(){
console.log("It's working! :D");
return "It's working!";
}
Run Code Online (Sandbox Code Playgroud)
如果这样做,您将意识到它正在运行,即浏览器中的文件“./outJavascripts/test.js”。并且函数“check_test”永远不会在服务器中运行。
| 归档时间: |
|
| 查看次数: |
9420 次 |
| 最近记录: |