Javascript 如何使用nodeJS将脚本文件链接到html文件
我正在使用nodeJS提供一些html,但我希望能够调用javascript文件中的函数,我正在尝试链接这些函数。但是,我收到的错误消息是Javascript 如何使用nodeJS将脚本文件链接到html文件,javascript,html,node.js,Javascript,Html,Node.js,我正在使用nodeJS提供一些html,但我希望能够调用javascript文件中的函数,我正在尝试链接这些函数。但是,我收到的错误消息是资源被解释为脚本,但使用MIME类型text/html传输:http://localhost:8888/index.js“。我不确定哪些链接不正确,需要一种方法来链接我的文件index.js。我试图将文件加载到头部,如下所示: http = require('http'), http.createServer(function(req, res) { va
资源被解释为脚本,但使用MIME类型text/html传输:http://localhost:8888/index.js“
。我不确定哪些链接不正确,需要一种方法来链接我的文件index.js
。我试图将文件加载到头部,如下所示:
http = require('http'),
http.createServer(function(req, res) {
var body = '<html>'+
'<head>'+
'<script src="index.js"></script>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'</body>'+
'</html>';
response.writeHead(200,{"Content-Type":"text/html"});
response.write(body);
response.end();
}
}).listen(8888);
http=require('http'),
http.createServer(函数(req,res){
变量体=“”+
''+
''+
''+
''+
''+
''+
'';
writeHead(200,{“内容类型”:“text/html”});
答复.书面答复(正文);
response.end();
}
}).听(8888);
如何加载这个javascript文件
index.js
,以便index.js
中包含的所有函数都可以在客户端使用 对index.js
的请求得到与/
相同的响应
仅处理这一种情况的简单解决方案是:
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res) {
// Send index.js
if(req.url == '/index.js') {
var file = __dirname + '/index.js';
var stat = fs.statSync(file);
res.writeHead(200, {
'Content-Type': 'text/javascript',
'Content-Length': stat.size
});
var readStream = fs.createReadStream(file);
readStream.pipe(res);
// Send default page
} else {
var body = '<html>'+
'<head>'+
'<script src="index.js"></script>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'</body>'+
'</html>';
res.writeHead(200,{"Content-Type":"text/html"});
res.write(body);
res.end();
}
}).listen(8888);
var http=require('http');
var fs=需要('fs');
http.createServer(函数(req,res){
//发送index.js
如果(req.url='/index.js'){
var file=_dirname+'/index.js';
var stat=fs.statSync(文件);
文书标题(200{
“内容类型”:“文本/javascript”,
“内容长度”:stat.size
});
var readStream=fs.createReadStream(文件);
readStream.pipe(res);
//发送默认页面
}否则{
变量体=“”+
''+
''+
''+
''+
''+
''+
'';
res.writeHead(200,{“内容类型”:“text/html”});
res.write(正文);
res.end();
}
}).听(8888);
创建一个新的index.html
页面,而不是对其进行硬编码-在其中包含脚本文件并提供index.html
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res) {
if(req.url == '/index.html') {
var file = __dirname + '/index.html'; //this index.html contains script tag
var stat = fs.statSync(file);
res.writeHead(200, {
'Content-Type': 'text/javascript',
'Content-Length': stat.size
});
var readStream = fs.createReadStream(file);
readStream.pipe(res);
// Send default page
}
}).listen(8888);
无论您的服务器收到什么请求,您都需要检测所请求的文件是index.js,并为该请求提供不同的内容谢谢您的思考。然而,这并不完全符合我的目标。我试图做的只是将html页面转换为javascript文件,保持现有html的位置。这要么提供一个html文件,要么提供一个包含index.js的空白页面linked@maudulus我不明白你的意思。if语句的第一部分不发送
正文中的html,尽管它确实发送index.js
中的函数;if语句的第二部分向上发送body
,但不向上发送index.js
,这是因为在else
部分,它提供html。html中的脚本标记请求外部脚本index.js
。当服务器收到对index.js
的请求时,它将提供您的index.js
文件(来自if
部分)。因此,您将收到两个请求。您是说要在html中的
和
标记之间写入index.js
的每一行吗?脚本标记不起作用-我收到一条错误消息资源被解释为脚本,但使用MIME类型text/html传输:http://localhost:8888/index.js“