【问题标题】:How to read a text file with Node.js and write it to a HTML page?如何使用 Node.js 读取文本文件并将其写入 HTML 页面?
【发布时间】:2017-05-11 04:32:11
【问题描述】:

我有一个文本文件,我想使用 Node.js 使用 fs 模块来阅读它。我知道如何读取文件,但我不知道如何获取文本文件的数据并将其放入网站页面。

例如:我想读取一个内容为“hello world!!!”的文件然后使用 jQuery 把它放到一个 div 中。

【问题讨论】:

    标签: javascript jquery node.js


    【解决方案1】:

    我不知道这样做的目的是什么,但您可以使用 Express 启动一个简单的 Web 服务器,以提供您的文本文件的内容。然后,您只需要使用 jQuery 从您的网站页面请求此 Web 服务器。

    【讨论】:

      【解决方案2】:

      如果您使用 jquery 和 express,只需在您的 express 服务器上构建一个端点来提供文本文件的内容。

      你的 jquery:

      $.getJSON("/text", function(data){
         <write code here to render contents of text file to the DOM>
      })
      

      您在节点中的终点:

      router.get("/text", function(req, res){
            fs.readFile(textFile, 'utf8', function(err, data) {
              if (err) throw err;
              return res.json(textFile);
            })
          })
      })
      

      【讨论】:

        【解决方案3】:

        据我了解,您希望在客户端而不是服务器上“呈现”文本。使用 jQuery 执行此操作的最简单方法是使用 $.ajax,如下所示:

        const URL_TO_STATIC_TXT = 'https://cdn.rawgit.com/fabe/2a371ce28effb32fa1120f8d25225d37/raw/6d0bfebff1d0b52d72ed5ded4011a0bbff80d679/file.txt';
          
        $.ajax({ url: URL_TO_STATIC_TXT })
          .done(data => {
            $('body').text(data);
          });
        &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

        那么你只需要使用 Node.js 托管静态的.txt 文件,甚至不需要使用fs。使用 Express,您可以通过 app.use 实现此目的:

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

        如果您想在服务器上渲染文件(使用fs),您还可以查看无数模板库,例如pug

        【讨论】:

          【解决方案4】:

          NodeJS 不是网络服务器。

          但是,您可以轻松添加依赖项来提供此类 能力。

          例如expresskoahapi

          到目前为止,您已经获得了 [类似]:

          const fs = require('fs');
          fs.readFile('data.json', (e, data) => {
              if (e) throw e;
              console.log(data);
          });
          

          你可以使用 express 如下(注意:如果你没有 已经运行npm init,这样做并提供合理的默认值):

          npm init 
          npm install --save express
          

          然后,创建一个文件app.js,为您提供数据,例如:

          const fs = require('fs');
          const express = require('express');
          const app = express();
          
          app.use('/', (req, res) => {
              if (e) throw e;
          
              // **modify your existing code here**
              fs.readFile('data.json', (e, data) => {
                  if (e) throw e;
                  res.send(data);
              });
          });
          
          app.listen(5555);
          

          启动您的节点“网络服务器”:

          node app.js
          

          最后,将浏览器指向:

          http://localhost:5555/
          

          【讨论】:

          • 我明白你在说什么,所以你会如何指出它,因为我有我的 JavaScript 文件,如果用户点击一个按钮,我希望它显示 txt 文件。那我该怎么做呢?
          • 请加const fs = require('fs');
          【解决方案5】:

          const URL_TO_STATIC_TXT = 'https://cdn.rawgit.com/fabe/2a371ce28effb32fa1120f8d25225d37/raw/6d0bfebff1d0b52d72ed5ded4011a0bbff80d679/file.txt';
            
          $.ajax({ url: URL_TO_STATIC_TXT })
            .done(data => {
              $('body').text(data);
            });
          &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

          【讨论】:

          • 欢迎来到 Stack Overflow _ “好答案”还包括一两句话,以纯文本形式解释您认为您的解决方案会起作用的原因。请访问 SO 帮助中心,特别是本指南以获取更多详细信息 >>> stackoverflow.com/help/how-to-answer
          猜你喜欢
          • 2021-12-12
          • 1970-01-01
          • 1970-01-01
          • 2017-10-18
          • 2017-10-03
          • 1970-01-01
          • 2019-10-05
          • 1970-01-01
          • 2018-08-09
          相关资源
          最近更新 更多