如何使用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);