【问题标题】:node JS client vs server节点 JS 客户端与服务器
【发布时间】:2016-06-20 22:09:57
【问题描述】:

我是一名 PHP 开发人员,最近在 express 中使用了一些 node JS。

我很困惑的一件事是你如何告诉你的快速服务器一个 javascript 文件应该在服务器上执行还是发送到浏览器以在客户端执行。

在 PHP 中这不是问题,因为每种文件类型(php、pearl、jpg、js)都有其运行的专用位置(服务器或客户端)。编写其他语言(如 Java 和 C#)的 HTTP 应用程序也是如此

考虑这个示例代码

var express = require('express'); var app = express();

app.get('/some_page', function(req, res) { res.send('你好世界'); });

app.listen(3000);

不涉及 JS,所以 'hello world' 被发送到浏览器并由浏览器呈现。

但是如果代码是

var express = require('express'); var app = express();

app.get('/', function(req, res){ res.send('console.log('hello 世界')'); });

app.listen(3000);

这次我们有了 JS 函数 console.log() 那么 node.js 如何知道是否应该运行此代码或将其发送到浏览器。

【问题讨论】:

  • 看来在跳到 express.js 之前你需要学习 node.js 的基础知识

标签: node.js express server client


【解决方案1】:

这都是app.get('/', function(req, res){} 标签中的所有内容

res.send('console.log("hello world!")')

将在客户页面上打印console.log("hello world!")

res.send('<html><body><script>console.log("hello world!");</script></body></html>')

将在客户端的控制台中打印hello world!

 res.send('hello world!');
 console.log("hello world!");

将在客户端页面和服务器控制台上打印hello world!

所以基本上你发送给客户端的所有代码都将在客户端完成,而你不发送给客户端的代码将在服务器端完成

编辑

likeAnkur Rana说你也可以发送Html文件

res.sendFile('index.html');

在与此文件相同的目录中,我们有一个名为 index.html 的文件:

<html>
<body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <div id="myId">console.log("hello world!")</div>
    <script>
        //regular js here
     $("#myId").html("Hello World!");
    </script>
</body>
</html>

【讨论】:

    【解决方案2】:

    您正在使用express,因此您应该使用static 中间件明确指定客户端Javascript 代码。

    在下面的示例中,您定义了public 目录来存储它。

    // GET /style.css etc
    app.use(express.static(__dirname + '/public'));
    

    其他一切都将在服务器端执行。

    更多关于中间件:http://expressjs.com/en/guide/using-middleware.html

    【讨论】:

      【解决方案3】:

      将 javascript 代码放在 HTML 文件的 script 标签中并使用 res.sendFile('pathToFile.html')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        相关资源
        最近更新 更多