gpt4 book ai didi

javascript - NodeJS未加载外部javascript

转载 作者:行者123 更新时间:2023-12-04 09:44:42 25 4
gpt4 key购买 nike

我是 NodeJS 的新手,似乎无法弄清楚为什么我会遇到这个问题......

我有一个 HTML 文件,它使用外部 javascript(JS) 文件来管理我创建的表。我将 JS 文件包含在 HTML 文件的头部,并且所有文件共享同一个目录:

<script type="text/javascript" src="test.js"></script>

当我直接用浏览器打开 HTML 文件时......它工作正常。
现在我试图将它部署在 NodeJS 服务器上,但遇到了一些问题。

这是服务器:
var fs = require('fs');
var http = require('http');

http.createServer(function(request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});

var file = fs.createReadStream('index.V1.0.html');
file.pipe(response);
}).listen(8080);
console.log('listening on port 8080...');


服务器加载 HTML 很好,但无法访问外部 JS 脚本。我在检查器中收到错误消息:

语法错误:意外的标记“<”

使用检查器查看页面的源代码...它显示我的 JS 文件的内容是构成网页的 HTML。
我迷失在这个……所以任何提示都会有所帮助。

- - - - -更新 - - - - -

所以我遵循了你们所有评论的建议,我遇到了同样的问题。我理解加载 JS 脚本作为服务器配置的一部分背后的理论......但是当将它添加到我的服务器时,我仍然将 JS 文件加载为 HTML。
var fs = require('fs');
var http = require('http');

http.createServer(function(request, response) {

if(request.path === "/Users/christophermartone/Desktop/Programing/resturauntApp/driver.js") {
var file = fs.createReadStream('driver.js');
file.pipe(response);
console.log("Made it to JS");
response.writeHead(200, {'Content-Type': 'text/javascript'});
} else {
var file = fs.createReadStream('index.V1.0.html');
console.log("Made it to HTML");
file.pipe(response);
response.writeHead(200, {'Content-Type': 'text/html'});
}
}).listen(8080);

我添加了 console.log 进行测试,但它从来没有进入“Made it to JS”。加载服务器时,我收到两个“Made it to HTML”日志。

还有其他建议吗?

最佳答案

您的 test.js文件也从您的本地服务器请求。浏览器无法访问您的文件系统来加载 js 文件。

为了加载您的外部 js,您必须创建一个读取流,就像您为 index.html 编写的流一样

var fs = require('fs');
var http = require('http');

http.createServer(function(request, response) {
if(request.url === "/test.js") {
var file = fs.createReadStream('test.js');
file.pipe(response);
response.writeHead(200, {'Content-Type': 'text/javascript'});
} else {
var file = fs.createReadStream('index.V1.0.html');
file.pipe(response);
response.writeHead(200, {'Content-Type': 'text/html'});
}
}).listen(8080);

语法错误的原因是你还提供了 test.js的html文件来自浏览器的请求。很明显,它抛出了一个异常。

关于javascript - NodeJS未加载外部javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62187248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com