如何使用nodeJS将脚本文件链接到html文件
我使用nodeJS提供了一些html,但我想能够调用JavaScript文件中的函数,我正在尝试链接。 但是,我收到错误消息Resource interpreted as Script but transferred with MIME type 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);
我怎样才能加载这个JavaScript文件, index.js
,以便包含在index.js
中的所有function将在客户端可用?
创build一个新的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
的请求获得与/
相同的响应。
只处理这种情况的一个简单的解决scheme是:
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);