Jade: загрузите внешний javascript и вызовите функцию
Я изучал Express / Node / Jade, и теперь в файле Jade я хочу включить файл javascript из общей папки только для страницы. Например, в файле jade я набираю следующее:
script(src='/javascripts/test.js')
и внутри теста.js у меня есть функция
function check_test(){
return "It's working!"
}
затем я пытаюсь вызвать функцию в Jade по
- var test_response = check_test()
чем я получил ошибку, сказав, что" undefined не является функцией " и тест.js вообще не загружается. По-видимому, Jade не загружает файл, они только преобразование в HTML-код.
Я смотрю чужой вопрос, и это самый близкий, который я могу найти, но он не дает четкого ответа на то, что делать. в Jade, как вы можете вызвать функцию во внешнем Javascript
Итак, мой вопрос: в таком случае что я должен сделать, чтобы заставить его работать?
Я не хочу загружать файл в макет.js, так как я хочу только тест.js используется только этой страницей.
3 ответов
хорошо... В первом случае это отличается от того, что происходит в браузере от того, что происходит на сервере. Таким образом, Jade-это рендеринг HTML, поэтому, если вы находитесь в браузере. Это то, что ExpressJS shipping, то есть рендеринг нефрита. Если вы хотите позвонить, ваш HTML Javascript (рендеринг Jade) должен показать вам, где Javascript. Например
в сервер.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.Джейд!--4-->
script(src='/javascripts/test.js')
In "./ outJavascripts / test.js"
function check_test(){
console.log("It's working! :D");
return "It's working!";
}
Если вы это сделаете, вы поймете, что он запущен, файл "./ outJavascripts / test.АО" в браузере. И функция "check_test" никогда не запускается на сервере.
или поместите все папки в общую папку, например public
public
-javascripts
-stylesheets
-images
а затем выставить эту общую папку
app.use(express.static(path.join(__dirname, 'public')));
что означает, что вы можете
script(src='/javascripts/script.js')
link(rel='stylesheet', href='/stylesheets/style.css')
сохраните файл JS и свяжите его в файле Jade как:
script(src="filepath/yourJSfile.js")
затем вызовите функцию, я использую кнопку здесь, например:
button(class="btn", onclick='functionName()')