【问题标题】:how to execute external javascript file in html using node.js如何使用node.js在html中执行外部javascript文件
【发布时间】:2014-08-04 16:26:07
【问题描述】:

我是一个完整的 node.js 新手,正在努力学习基础知识。我有一个 html 文件,我想在本地主机环境中使用 node.js 在 html 页面中调用外部 javascript 文件。

【问题讨论】:

  • Node.js 和 html 有什么关系?有 Node.js 模块可以模拟 Web 浏览器的行为,但你确定它真的是你想要的吗?
  • 您能告诉我们您想要达到的目标吗?另外,请阅读XY Problem 以更好地定义您的问题。

标签: node.js


【解决方案1】:

您的主文件应检查请求的 url 是否要求 html 或 js 或 css 文件。

var server = http.createServer(function(request, response) {
console.log("Received Request: " + request.url);
    if(request.url.indexOf('.html') != -1) {
        fs.readFile("game" + request.url, function (error, data) {
            if (error) {
                response.writeHead(404, {"COntent-type":"text/plain"});
                response.end("No Html Page Found.");
            } else{
                response.writeHead(200, {'Content-Type': 'text/html'});
                response.write(data);
                response.end(); 
            }

        });
    }
    else if(request.url.indexOf('.js') != -1) {
        fs.readFile("game" + request.url, function (error, data) {
            if (error) {
                response.writeHead(404, {"COntent-type":"text/plain"});
                response.end("No Javascript Page Found.");
            } else{
                response.writeHead(200, {'Content-Type': 'text/javascript'});
                response.write(data);
                response.end(); 
            }

        });
    }
    else if(request.url.indexOf('.css') != -1) {
        fs.readFile("game" + request.url, function (error, data) {
            if (error) {
                response.writeHead(404, {"COntent-type":"text/plain"});
                response.end("No Css Page Found.");
            } else{
                response.writeHead(200, {'Content-Type': 'text/css'});
                response.write(data);
                response.end(); 
            }

        });
    }
    else {
        console.log("Inside the inside else statement");
        response.writeHead(404, {"COntent-type":"text/plain"});
        response.end("No Page Found");
    }
}); 

之后,您可以在 html 文件中包含外部 javascript 和 css 文件。

【讨论】:

    【解决方案2】:

    你只需将脚本标签添加到 html 中:

    <script type="text/javascript" href="/path/to/src.js"></script>
    

    【讨论】:

    • 这将在客户端执行脚本,而不是“在本地主机环境中使用node.js”
    • 哦,我明白了 - 我读过“想在 html 页面中调用外部 javascript 文件”。我认为它可以以任何一种方式阅读,但我确实认为这个问题对我的解释有点简单!
    【解决方案3】:

    我想我已经理解你真正的兴趣了。

    <script src="script.js"></script>
    

    如果你试图让一个脚本标签(如上面的那个)在你的 html 上工作,你应该在你的 Node.js http.createServer 回调中编写一个“路由器”。当浏览器找到脚本标签时,它会向服务器发送一个特定的请求,然后您可以将 javascript 代码发送回响应。

    我在这里写了一个类似问题的方法:How to include javascript on client side of node.js?

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 2018-10-15
      • 1970-01-01
      • 2017-05-10
      • 2011-07-10
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多