【问题标题】:Node JS - Access JSON from index.html on button clickNode JS - 单击按钮时从 index.html 访问 JSON
【发布时间】:2021-05-31 05:33:00
【问题描述】:

我对 Node JS 相当陌生,我正在尝试创建一个服务器,当用户导航到 http://localhost:8000/ 时,它们会被路由到 index.html。在那个 index.html 文件中会有一个按钮,他们可以单击该按钮来获取 JSON 数据。这个 JSON 数据被下载到我自己的机器上,目的是托管在 Node JS 服务器上。有 6 个 JSON 文件。

我的问题是,我可以在同一台服务器上托管 JSON 和 index.html 而不使用 Express 之类的框架吗?我有一个快递解决方案,但如果可能的话,我想不这样做。

index.html -> 按下按钮 -> 从服务器获取 JSON(同一服务器?)

--- 编辑 ---

它适用于大学模块,并提供了概述的说明。显式节点。

【问题讨论】:

  • 嗯,你的意思是 localhost 在路由 '/' 的端口 8000 设置为呈现 index.html 文件,但 json 位于哪里?在另一个网站上?
  • 假设您为此使用节点的http.createServer(function(req, res) { ... }),您可以检查req.url。如果您访问http://localhost:8000/,URL 将是/。如果您使用<a href="/data1.json">Data 1</a> 链接到一个json 文件,那么URL 将是/data1.json。您可以使用它来传递相应的文件而不是 index.html(不过,显而易见的问题是为什么您不想使用 express,因为这样做实际上会编写更少的代码)

标签: javascript node.js json express json.net


【解决方案1】:

你可以在 express js 上查看静态文件。 例如:

app.use('/static', express.static('public'));

更多信息在:

https://expressjs.com/pt-br/starter/static-files.html

【讨论】:

    【解决方案2】:

    设置环境

    mkdir server
    cd server
    npm init
    npm install express
    touch server.js index.html
    mkdir public
    

    服务器.js

    const express = require('express');
    const app = express();
    const path = require('path');
    
    app.use('/public', express.static('public'));
    
    app.get('/', (req, res) => {
        res.sendFile(path.join(__dirname + '/index.html'));
    });
    
    app.listen(80, () => console.log("Running on: http://localhost"));
    

    索引.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Download JSON</title>
    </head>
    <body>
        <h1>Download</h1>
        <a href="public/sample.json" download="sample.json">Sample JSON</a>
    </body>
    </html>
    

    将您的 JSON 放入公用文件夹结构并定期链接到它,就像上面的 HTML 示例一样。

    【讨论】:

    • OP 说他们有一个有效的基于 express 的解决方案,并且他们专门要求一个解决方案 without express。
    • 这很傻,所以使用http lib?不值得回答
    • 他们可能有他们的理由,但请参阅我在上面发布的评论;)
    【解决方案3】:

    我使收到的问题过于复杂。我被告知只使用 http 和 fs 库并访问 JSON,例如 localhost/8080/path/to/json。

    为这个问题道歉。

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多