【问题标题】:I want to use JQuery in Node.js and EJS but $ is not defined我想在 Node.js 和 EJS 中使用 JQuery,但 $ 没有定义
【发布时间】:2017-11-11 13:17:52
【问题描述】:

我想使用 JQuery,所以我喜欢这个。

  1. npm 安装 jquery
  2. 修改package.json

但还是不行。

这是.ejs页面

<html>
<head>
<script src="/js/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css">
<%
    $(".btn").click(function(){
        window.location.href = "/main";
    });
%>
</head>
<body>
    //display something
</body>
</html>

这是 app.js

var express = require('express');
var $ = require('jquery')(window);
var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.engine('ejs', require('ejs').renderFile);

var server = app.listen(8080);

app.use(express.static('public'));
app.use('/js', express.static(__dirname + '/node_modules/jquery/dist'));

var router = require("./routes/index.js")(app);

错误代码是,

$ is not defined

我该如何解决?

【问题讨论】:

  • 你尝试用 改变这个
  • @husan 是的,当我更改时,应用程序没有崩溃但仍然有脚本错误。
  • 你能在这里写错吗
  • @husan ReferenceError: /home/ubuntu/workspace/views/index.ejs:7 5| 6| >> 7|

标签: javascript jquery node.js npm ejs


【解决方案1】:

我个人认为 jQuery 最好在客户端处理 - 它对您的服务器性能更好,否则您将不得不在服务器端使用 DOM - 这将使用更多服务器资源。

但是,如果您仍然想在服务器端使用 jQuery,那么这个链接有一个更完整的指南: https://www.npmjs.com/package/jQuery

【讨论】:

  • 我同意你的看法。我只想将 jQuery 用于单击和动画等事件。也许我确实喜欢在服务器端使用 jQuery。
  • 您可以通过在您的 ejs 文件中使用
  • 哦,天哪。你说得对。现在它工作得很好。非常感谢!
【解决方案2】:

您似乎需要错误的文件,因为 javascript 区分大小写。

当您需要jQuery 时,您需要jquery。尝试改变它。

【讨论】:

  • 嗯。你的 require 旁边的 (window) 参数在做什么?
  • 我刚刚在一个叫做仁慈的人的帮助下解决了我的问题。谢谢你:)
【解决方案3】:

确实是这样的。 node.js 太混乱了。太感谢了。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script>
    $(".btn").click(function(){
        window.location.href = "/main";
    });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 2016-12-29
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    相关资源
    最近更新 更多