4

我是 jQuery 和 node.js 的新手,这个问题困扰了我几个小时,我搜索了 stackoverflow 并用谷歌搜索但找不到解决方案。

我正在 jQuery 中测试这个“hello world”示例,并尝试使用 node.js 运行它,但它不起作用。

这是我的 node.js 服务器代码:

var express = require('express');
var fs = require("fs");
var app = express.createServer(express.logger());
var path = require('path');

var indexText = fs.readFileSync("test.html");

app.use('/jquery', express.static(__dirname + '/jquery'));


app.get('/', function(request, response) {
  response.send(indexText.toString());
});

var port = process.env.PORT || 8080;
app.listen(port, function() {
  console.log("Listening on " + port);
});

如您所见,我尝试使用 express.static() 告诉 node.js jQuery lib 所在的位置。这是 test.html 的 html:

<html>
<head>
<title>jQuery Hello World</title>

<script type="text/javascript" src="/jquery/jquery-1.2.6.min.js"></script>

</head>

<body>

<script type="text/javascript">

$(document).ready(function(){
 $("#msgid").html("This is Hello World by JQuery");
});

</script>

This is Hello World by HTML

<div id="msgid">
</div>

</body>
</html>

它应该打印:

这是 HTML 的 Hello World 这是 JQuery 的 Hello World

但它只从 HTML 打印 hello

这个问题可能很愚蠢,但我是新手,所以我需要你的帮助。谢谢你。

4

2 回答 2

7

好的,我找到了我所要求的解决方案。这是一个 git 存储库,其中包含对我有帮助的代码:

https://github.com/jmhdez/Nodejs-Sample

这是带有代码的教程(它是西班牙语,但让谷歌浏览器为你翻译整个页面,没关系)

http://blog.koalite.com/2011/11/tutorial-node-js-express-jquery-i-creando-la-aplicacion/

再次感谢大家的帮助

于 2013-07-18T21:52:58.080 回答
2

app.use 使用字符串作为第一个参数是一个前缀。意思是后面应用的任何中间件都位于该前缀下。对于 jquery 的 express.static,它将位于 /jquery

因此,在您的 HTML 中,jquery-1.2.6 的 src 应该在 /jquery/jquery-1.2.6.js 下找到

您可以通过尝试加载来测试它

http://localhost:8080/jquery/jquery-1.2.6.min.js

代替

http://localhost:8080/jquery-1.2.6.min.js
于 2013-07-18T20:15:14.530 回答