我希望能够将 nodejs 与 jquery 一起使用,而不必执行 npm install,因为我想在客户端严格使用 jquery。我知道 Jade 模板引擎无法做到这一点,因为它的语法完全不同,但是其他模板引擎可以吗?我不想为了让nodejs开心而有一堆HTML to haml。
2 回答
当然可以在 Jade 中使用 jQuery 或任何其他 JavaScript 客户端库。您需要弄清楚在您使用的任何引擎中包含 JavaScript 文件和 JavaScript 代码的语法。使用 Jade,您可以使用 script() 来包含外部文件(如 jQuery 库),然后使用脚本对您的特定调用进行编码。在此处查看 Jade 文档:https ://github.com/visionmedia/jade#readme
下面是一个 Jade 文件示例,它 (1) 包含 jQuery,然后 (2) 通过 jQuery 更新 HTML 元素(“消息”):
doctype 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(src='http://code.jquery.com/jquery-1.8.1.js')
body
h1= title
p#container Welcome to #{title}
p#message (to be filled in)
script
alert('hello world');
$("#message").html("message set through jquery")
不要将 Jade 视为一种不同的语言或与您现有的 HTML/JS 堆栈有任何不兼容的东西——它只是编写 HTML 的一种简写方式,它允许您将服务器端数据作为副产品注入。
对于我的个人堆栈,我在服务器端使用 express + jam,然后在客户端使用 angularjs、jquery 和 twitter bootstrap。我使用 require.js 来管理我的所有导入,在我的翡翠模板中,我只有一个 script() 引用,它指向包含我所有 require.js 逻辑的 main.js 文件。
但是,就快递/翡翠而言——关键是要确保你明白它不是为了让你的生活复杂化,而是为了让你的生活更轻松。如果您觉得它令人困惑,请切换到不同的模板引擎,或者只是快速提供静态 html 页面而没有注入任何内容,并设置 AJAX 服务来获取您需要的服务器端数据。