我使用nodejs创建了简单的服务器,并让它调用了调用iquery的html文件。但是它不适用于显示以下两个错误的浏览器。
1.“未捕获的SyntaxError:意外的令牌<”
2.“未捕获的ReferenceError:$未在(index):13处定义”
(服务器端代码)
var app = require('http').createServer(handler);
var fs = require('fs');
app.listen(1337);
function handler(req, res){
fs.readFile('index_test1.html', function(err, data){
if(err){
res.writeHead(500);
return res.end("Error");
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}
(index_test1.html代码)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo1</title>
<script src="jquery-3.3.1.min.js"></script>
<style type="text/css"></STYLE>
</HEAD>
<BODY>
<p id="test"></p>
<script>
$(function(){
$('#test').text('Hello World!');
});
</script>
</BODY>
</HTML>
jquery-3.3.1.min.js与server.js和index_test.html存在于同一文件夹中。
我希望有人在这个问题上帮助我。
谢谢,
答案 0 :(得分:1)
您编写的代码发生了一件有趣的事情。您是否为每个请求提供一个文件(index_test1.html
)?因为您已经在处理程序中对其进行了硬编码。
因此,当您打开localhost:1337
时,会看到index_test1.html
文件。
现在,在该html中,您将导入一个jQuery文件。但是,请猜怎么着,您只有 ONE 处理程序,而localhost:1337/jquery-3.3.1.min.js
将通过 SAME 处理程序,是的!您知道了!,提供相同的完全相同的index_test1.html
文件。
在浏览器中打开服务器时,请打开Developer Tools
并转到Network
标签。并再刷新一次以查看网络请求。您会看到我在说什么。
您想做的是猜一个Basic static file server in NodeJS(来自@james的评论)?有很多很好的教程可以帮助您做到这一点。但是我认为您的问题很有趣,因此在此进行了解释。希望这可以为您解决一些问题。
答案 1 :(得分:-2)
您可能尚未下载jquery。尝试将其放在脚本中: https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js