Node.js在本地返回一个JS文件

时间:2015-04-10 03:40:54

标签: javascript jquery html node.js

在我的html文件中,我使用的是:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

但是,在运行期间我不允许连接到互联网。如何使用节点js在本地返回此文件。我已经下载了这个文件&#34; jquery.min.js&#34;在我的本地机器上。

我正在尝试使用此代码,但它不起作用。

function callback(data) { 
    res.writeHead(200, {"Content-Type": "text/html"});
    var str = data+"";
    res.write(str);     
    res.end();
}
HTMLtemplate.load("jquery.min.js", callback); 

1 个答案:

答案 0 :(得分:1)

您无法在简单的节点服务器中轻松提供网页和jquery,如下所示:

var http = require('http');


var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
server.listen(8000);

我认为您需要一些路由器或框架来提供多个http端点和静态资产。很多人使用快递:

http://expressjs.com/

甚至可以这么简单:

https://github.com/creationix/node-router

我想你可以使用裸节点服务器通过执行类似这样的操作来提供嵌入jquery的网页(这只是伪代码):

var http = require('http');
var fs = require('fs');
var html = "<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
 <script>REPLACEME</script>
</head>
<body>

</body>
</html>";

var server = http.createServer(function (request, response) {
    fs.readFile('jquery.js', 'utf8', function (err,data) {
            response.writeHead(200, {"Content-Type": "text/html"});
            response.end(html.replace('REPLACEME', data));

    });

});
server.listen(8000);

但这似乎是非常错误的,或许可以作为演示Web框架功能的练习。除非你在学校这样做,否则只需安装上述框架之一(或其他一些框架)就可以轻松实现。