Hướng dẫn does javascript allow you to read or write fields on the users hard drive? - javascript có cho phép bạn đọc hoặc ghi các trường trên ổ cứng của người dùng không?

Ở đây tôi đã học được rằng có thể với JavaScript trong HTML để tạo các tệp ngoại tuyến và lưu chúng trên đĩa cứng.

Nhưng những gì về việc đọc các tập tin? JavaScript có thể truy cập, nói một trong các tệp .txt của tôi trên điện thoại tự của tôi và hiển thị dữ liệu đọc (hoặc ít nhất là đặt nó trong bộ nhớ cục bộ) không?

Tôi biết rằng có thể với PHP, nhưng không có PHP trên điện thoại di động của tôi, trong khi HTML luôn ở đó.

Đã hỏi ngày 23 tháng 10 năm 2017 lúc 1:40Oct 23, 2017 at 1:40

15

Bạn có thể sử dụng

  1. nano readFile.js
4 và
  1. nano readFile.js
5 để đọc các tệp được lưu trữ tại hệ thống tập tin cục bộ, xem API tệp; Ngoài ra, làm thế nào filereader.readastext trong API tệp HTML5 hoạt động ?.

Nếu thử tại Chromium hoặc Chrome để đọc giao thức

  1. nano readFile.js
6 khởi chạy trình duyệt bằng cờ
  1. nano readFile.js
7, mà không cần các trường hợp Chrome khác chạy hoặc sử dụng
  1. nano readFile.js
8 khác, hãy xem Đọc XML cục bộ với JS.

Đã trả lời ngày 24 tháng 10 năm 2017 lúc 1:51Oct 24, 2017 at 1:51

Tác giả đã chọn Quỹ Cứu trợ Covid-19 để nhận quyên góp như một phần của Chương trình Viết cho Đóng góp.

Giới thiệu

Làm việc với các tập tin là phổ biến cho các mục đích phát triển vì nó là cho các mục đích không phát triển. Trong sử dụng máy tính hàng ngày, người dùng có thể sẽ đọc và ghi dữ liệu vào các tệp trong các thư mục khác nhau để hoàn thành các tác vụ như lưu tệp đã tải xuống hoặc truy cập dữ liệu để sử dụng trong một ứng dụng khác. Theo cách tương tự, công cụ chương trình back-end hoặc giao diện dòng lệnh (CLI) có thể cần phải ghi dữ liệu đã tải xuống vào một tệp để lưu nó hoặc một ứng dụng sử dụng nhiều dữ liệu có thể cần phải xuất sang JSON, CSV hoặc Excel định dạng. Các chương trình này sẽ cần liên lạc với hệ thống tập tin của hệ điều hành mà chúng đang chạy.

Với Node.js, bạn có thể lập trình thao tác các tệp với mô-đun

  1. nano readFile.js
9 tích hợp. Tên này là viết tắt của hệ thống tệp, và mô -đun chứa tất cả các chức năng bạn cần đọc, ghi và xóa các tệp trên máy cục bộ. Khía cạnh độc đáo này của Node.js làm cho JavaScript trở thành một ngôn ngữ hữu ích cho lập trình công cụ back-end và CLI.

Trong bài viết này, bạn sẽ sử dụng mô -đun

  1. nano readFile.js
9 để đọc một tệp được tạo thông qua dòng lệnh, tạo và ghi vào một tệp mới, xóa tệp mà bạn đã tạo và di chuyển tệp đầu tiên vào một thư mục khác. Mô -đun
  1. nano readFile.js
9 hỗ trợ tương tác với các tệp đồng bộ, không đồng bộ hoặc thông qua các luồng; Hướng dẫn này sẽ tập trung vào cách sử dụng API không đồng bộ, dựa trên lời hứa, phương pháp được sử dụng phổ biến nhất cho các nhà phát triển Node.js.

Điều kiện tiên quyết

  • Bạn phải có Node.js được cài đặt trên máy tính của mình để truy cập mô -đun

    1. nano readFile.js
    9 và làm theo hướng dẫn. Hướng dẫn này sử dụng Node.js phiên bản 10.22.0. Để cài đặt Node.js trên macOS hoặc Ubuntu 18.04, hãy làm theo các bước trong cách cài đặt Node.js và tạo môi trường phát triển cục bộ trên macOS hoặc cài đặt bằng phần PPA về cách cài đặt Node.js trên Ubuntu 18.04.Installing Using a PPA section of How To Install Node.js on Ubuntu 18.04.

  • Bài viết này sử dụng lời hứa JavaScript để làm việc với các tệp, đặc biệt là với cú pháp const fs = require('fs').promises; 3. Nếu bạn không quen thuộc với lời hứa, cú pháp const fs = require('fs').promises; 3 hoặc lập trình không đồng bộ, hãy xem hướng dẫn của chúng tôi về cách viết mã không đồng bộ trong Node.js.

Bước 1 - Đọc các tệp với const fs = require('fs').promises; 5

Trong bước này, bạn sẽ viết một chương trình để đọc các tệp trong node.js. Để làm điều này, bạn sẽ cần nhập mô -đun

  1. nano readFile.js
9, mô -đun Node.js tiêu chuẩn để làm việc với các tệp và sau đó sử dụng chức năng mô -đun ____ ____45. Chương trình của bạn sẽ đọc tệp, lưu trữ nội dung của nó trong một biến, sau đó đăng nhập nội dung của nó vào bảng điều khiển.

Bước đầu tiên sẽ là thiết lập môi trường mã hóa cho hoạt động này và các trong các phần sau.

Tạo một thư mục để lưu trữ mã của bạn. Trong thiết bị đầu cuối của bạn, hãy tạo một thư mục gọi là const fs = require('fs').promises; 8:

  1. mkdir node-files

Thay đổi thư mục làm việc của bạn thành thư mục mới được tạo bằng lệnh const fs = require('fs').promises; 9:

  1. cd node-files

Trong thư mục này, bạn sẽ tạo hai tệp. Tệp đầu tiên sẽ là một tệp mới có nội dung mà chương trình của bạn sẽ đọc sau. Tệp thứ hai sẽ là mô -đun Node.js đọc tệp.

Tạo tệp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0 với lệnh sau:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt

Lệnh const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 1 in đối số chuỗi của nó vào thiết bị đầu cuối. Bạn sử dụng const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 2 để chuyển hướng đầu ra ____ 51 ra một tệp mới, const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0.

Bây giờ, tạo và mở const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 5 trong trình soạn thảo văn bản của bạn. Hướng dẫn này sử dụng const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6, một trình soạn thảo văn bản đầu cuối. Bạn có thể mở tệp này với const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6 như thế này:

  1. nano readFile.js

Mã cho tệp này có thể được chia thành ba phần. Đầu tiên, bạn cần nhập mô -đun Node.js cho phép chương trình của bạn hoạt động với các tệp. Trong trình soạn thảo văn bản của bạn, hãy nhập mã này:

node-files/readFile.js

const fs = require('fs').promises;

Như đã đề cập trước đó, bạn sử dụng mô -đun

  1. nano readFile.js
9 để tương tác với hệ thống tập tin. Tuy nhiên, lưu ý rằng bạn đang nhập phần const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 9 của mô -đun.

Khi mô -đun

  1. nano readFile.js
9 được tạo lần đầu tiên, cách chính để viết mã không đồng bộ trong Node.js là thông qua các cuộc gọi lại. Khi những lời hứa ngày càng phổ biến, nhóm Node.js đã làm việc để hỗ trợ họ trong mô -đun
  1. nano readFile.js
9 ra khỏi hộp. Trong Node.js phiên bản 10, họ đã tạo một đối tượng const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 2 trong mô -đun
  1. nano readFile.js
9 sử dụng lời hứa, trong khi mô -đun chính
  1. nano readFile.js
9 tiếp tục hiển thị các chức năng sử dụng các cuộc gọi lại. Trong chương trình này, bạn đang nhập phiên bản hứa hẹn của mô -đun.

Khi mô -đun được nhập, bạn có thể tạo một hàm không đồng bộ để đọc tệp. Các hàm không đồng bộ bắt đầu với từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 5. Với chức năng không đồng bộ, bạn có thể giải quyết các lời hứa bằng cách sử dụng từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 6, thay vì chuỗi lời hứa bằng phương pháp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 7.

Tạo một hàm mới const fs = require('fs').promises; 5 chấp nhận một đối số, một chuỗi gọi là const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 9. Hàm const fs = require('fs').promises; 5 của bạn sẽ sử dụng mô -đun

  1. nano readFile.js
9 để tải tệp vào một biến bằng cú pháp const fs = require('fs').promises; 3.

Nhập mã được tô sáng sau:

node-files/readFile.js

const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } }

Bạn xác định chức năng với từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 5 để sau này bạn có thể sử dụng từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 6 đi kèm. Để nắm bắt lỗi trong thao tác đọc tệp không đồng bộ của bạn, bạn sẽ gửi lệnh gọi đến

  1. node readFile.js
5 với khối
  1. node readFile.js
6. Trong phần
  1. node readFile.js
7, bạn tải một tệp vào biến
  1. node readFile.js
8 với hàm
  1. node readFile.js
5. Đối số duy nhất cần thiết cho hàm đó là đường dẫn tệp, được đưa ra dưới dạng chuỗi.

  1. node readFile.js
5 trả về một đối tượng

Output

hello, hola, bonjour, hallo 1 theo mặc định. Đối tượng

Output

hello, hola, bonjour, hallo 1 có thể lưu trữ bất kỳ loại tệp nào. Khi bạn đăng nhập các nội dung của tệp, bạn sẽ chuyển đổi các byte đó thành văn bản bằng cách sử dụng phương thức

Output

hello, hola, bonjour, hallo 3 của đối tượng bộ đệm.

Nếu một lỗi bị bắt, thông thường nếu không tìm thấy tệp hoặc chương trình không có quyền đọc tệp, bạn đăng nhập lỗi bạn nhận được trong bảng điều khiển.

Cuối cùng, hãy gọi chức năng trên tệp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0 với dòng được tô sáng sau:

node-files/readFile.js

const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt');

Hãy chắc chắn để lưu nội dung của bạn. Với const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6, bạn có thể lưu và thoát bằng cách nhấn

Output

hello, hola, bonjour, hallo 6.

Chương trình của bạn bây giờ sẽ đọc tệp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0 bạn đã tạo trước đó và đăng nhập nội dung của nó vào thiết bị đầu cuối. Xác nhận điều này bằng cách thực thi mô -đun của bạn với

Output

hello, hola, bonjour, hallo 8:

  1. node readFile.js

Bạn sẽ nhận được đầu ra sau:

Output

hello, hola, bonjour, hallo

Bây giờ bạn đã đọc một tệp với chức năng

  1. nano readFile.js
9 ____ ____45 bằng cách sử dụng cú pháp const fs = require('fs').promises; 3.

Lưu ý: Trong một số phiên bản trước của Node.js, bạn sẽ nhận được cảnh báo sau khi sử dụng mô -đun

  1. nano readFile.js
9: In some earlier versions of Node.js, you will receive the following warning when using the
  1. nano readFile.js
9 module:

(node:13085) ExperimentalWarning: The fs.promises API is experimental

Đối tượng const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 2 của mô -đun

  1. nano readFile.js
9 đã được giới thiệu trong phiên bản 10 của Node.js, vì vậy một số phiên bản trước đó vẫn gọi thử nghiệm mô -đun. Cảnh báo này đã được xóa khi API trở nên ổn định trong phiên bản 12.6.

Bây giờ bạn đã đọc một tệp với mô -đun

  1. nano readFile.js
9, tiếp theo bạn sẽ tạo một tệp và viết văn bản cho nó.

Bước 2 - Viết tệp bằng (node:13085) ExperimentalWarning: The fs.promises API is experimental 6

Trong bước này, bạn sẽ viết các tệp với chức năng (node:13085) ExperimentalWarning: The fs.promises API is experimental 6 của mô -đun

  1. nano readFile.js
9. Bạn sẽ tạo một tệp CSV trong Node.js để theo dõi hóa đơn tạp hóa. Lần đầu tiên bạn viết tệp, bạn sẽ tạo tệp và thêm các tiêu đề. Lần thứ hai, bạn sẽ nối dữ liệu vào tệp.

Mở một tệp mới trong trình soạn thảo văn bản của bạn:

  1. cd node-files
0

Bắt đầu mã của bạn bằng cách nhập mô -đun

  1. nano readFile.js
9:

nút-files/writefile.js

const fs = require('fs').promises;

Bạn sẽ tiếp tục sử dụng cú pháp const fs = require('fs').promises; 3 khi bạn tạo hai chức năng. Hàm đầu tiên sẽ là tạo tệp CSV. Hàm thứ hai sẽ là thêm dữ liệu vào tệp CSV.

Trong trình soạn thảo văn bản của bạn, nhập mã được tô sáng sau:

node-files/writeFile.js

  1. cd node-files
2

Hàm không đồng bộ này trước tiên tạo ra biến

  1. cd node-files
01 chứa các tiêu đề cột của tệp CSV của bạn. Sau đó, bạn sử dụng chức năng (node:13085) ExperimentalWarning: The fs.promises API is experimental 6 của mô -đun
  1. nano readFile.js
9 để tạo tệp và ghi dữ liệu vào nó. Đối số đầu tiên là đường dẫn tệp. Khi bạn chỉ cung cấp tên tệp, Node.js sẽ tạo tệp trong cùng thư mục mà bạn đang thực thi mã. Đối số thứ hai là dữ liệu bạn đang viết, trong trường hợp này là biến
  1. cd node-files
01.

Tiếp theo, tạo một chức năng mới để thêm các mục vào danh sách tạp hóa của bạn. Thêm chức năng được tô sáng sau trong trình soạn thảo văn bản của bạn:

node-files/writeFile.js

  1. cd node-files
3

Hàm

  1. cd node-files
05 không đồng bộ chấp nhận ba đối số: tên của mặt hàng tạp hóa, số tiền bạn đang mua và giá mỗi đơn vị. Các đối số này được sử dụng với cú pháp theo nghĩa đen để tạo biến
  1. cd node-files
06, đó là dữ liệu bạn đang viết vào tệp.

Sau đó, bạn sử dụng phương thức (node:13085) ExperimentalWarning: The fs.promises API is experimental 6 như bạn đã làm trong hàm

  1. cd node-files
08. Tuy nhiên, lần này bạn có một đối số thứ ba: một đối tượng JavaScript. Đối tượng này có khóa
  1. cd node-files
09 với giá trị
  1. cd node-files
10. Cờ nói với Node.js Cách tương tác với tệp trên hệ thống. Bằng cách sử dụng cờ
  1. cd node-files
10, bạn đang nói với Node.js để nối vào tệp, không ghi đè lên nó. Nếu bạn không chỉ định một lá cờ, nó mặc định là
  1. cd node-files
12, tạo ra một tệp mới nếu không tồn tại hoặc ghi đè lên tệp nếu nó đã tồn tại. Bạn có thể tìm hiểu thêm về các cờ hệ thống tập tin trong tài liệu Node.js.

Để hoàn thành tập lệnh của bạn, hãy sử dụng các chức năng này. Thêm các dòng được tô sáng sau ở cuối tệp:

node-files/writeFile.js

  1. cd node-files
4

Để gọi các chức năng, trước tiên bạn tạo chức năng trình bao bọc với

  1. cd node-files
13. Vì từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 6 không thể được sử dụng từ phạm vi toàn cầu khi viết hướng dẫn này, bạn phải kết thúc các hàm không đồng bộ trong một
  1. cd node-files
13. Lưu ý rằng chức năng này là ẩn danh, có nghĩa là nó không có tên để xác định nó.

Các hàm

  1. cd node-files
08 và
  1. cd node-files
05 của bạn là các hàm không đồng bộ. Không đặt các cuộc gọi này trong một chức năng khác, bạn không thể đảm bảo thứ tự của nội dung. Bao bọc bạn đã tạo được xác định với từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 5. Trong chức năng đó, bạn đặt hàng các cuộc gọi chức năng bằng từ khóa const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } readFile('greetings.txt'); 6.

Cuối cùng, định nghĩa

  1. cd node-files
13 được đặt trong ngoặc đơn. Những người này nói với JavaScript rằng mã bên trong chúng là một biểu thức chức năng. Các dấu ngoặc đơn ở cuối hàm và trước khi dấu chấm phẩy được sử dụng để gọi chức năng ngay lập tức. Điều này được gọi là biểu thức chức năng được phát hành ngay lập tức (IEife). Bằng cách sử dụng iife có hàm ẩn danh, bạn có thể kiểm tra xem mã của mình có tạo ra tệp CSV với ba dòng: tiêu đề cột, dòng cho
  1. cd node-files
21 và dòng cuối cùng cho
  1. cd node-files
22.

Lưu và thoát const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6 với

Output

hello, hola, bonjour, hallo 6.

Bây giờ, hãy chạy mã của bạn bằng lệnh

Output

hello, hola, bonjour, hallo 8:

  1. cd node-files
5

Sẽ không có đầu ra. Tuy nhiên, một tệp mới sẽ tồn tại trong thư mục hiện tại của bạn.

Sử dụng lệnh

  1. cd node-files
26 để hiển thị nội dung của
  1. cd node-files
27:

  1. cd node-files
6

Bạn sẽ nhận được đầu ra sau:

node-files/groceries.csv

  1. cd node-files
7

Cuộc gọi của bạn đến

  1. cd node-files
08 đã tạo một tệp mới và thêm các tiêu đề cột cho CSV của bạn. Các cuộc gọi tiếp theo đến
  1. cd node-files
05 sau đó đã thêm hai dòng dữ liệu của bạn.

Với chức năng (node:13085) ExperimentalWarning: The fs.promises API is experimental 6, bạn có thể tạo và chỉnh sửa các tệp. Tiếp theo, bạn sẽ xóa các tệp, một thao tác phổ biến khi bạn có các tệp tạm thời hoặc cần tạo không gian trên ổ cứng.

Bước 3 - Xóa các tệp bằng
  1. cd node-files
31

Trong bước này, bạn sẽ xóa các tệp với hàm

  1. cd node-files
31 trong mô -đun
  1. nano readFile.js
9. Bạn sẽ viết một tập lệnh Node.js để xóa tệp
  1. cd node-files
27 mà bạn đã tạo trong phần cuối cùng.

Trong thiết bị đầu cuối của bạn, hãy tạo một tệp mới cho mô -đun Node.js này:

  1. cd node-files
8

Bây giờ bạn sẽ viết mã tạo ra chức năng

  1. cd node-files
35 không đồng bộ. Hàm đó sẽ chấp nhận một đường dẫn tệp làm đối số, chuyển nó đến hàm
  1. cd node-files
31 để xóa nó khỏi hệ thống tập tin của bạn.

Trong trình soạn thảo văn bản của bạn, hãy viết mã sau:

node-files/deleteFile.js

  1. cd node-files
9

Hàm

  1. cd node-files
31 chấp nhận một đối số: Đường dẫn tệp của tệp bạn muốn bị xóa.

CẢNH BÁO: Khi bạn xóa tệp với chức năng

  1. cd node-files
31, nó không được gửi đến thùng rác hoặc thùng rác của bạn có thể bị xóa vĩnh viễn khỏi hệ thống tập tin của bạn. Hành động này không thể đảo ngược, vì vậy hãy chắc chắn rằng bạn muốn xóa tệp trước khi thực thi mã của mình. When you delete the file with the
  1. cd node-files
31 function, it is not sent to your recycle bin or trash can but permanently removed from your filesystem. This action is not reversible, so please be certain that you want to remove the file before executing your code.

Thoát const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6, đảm bảo rằng bạn lưu nội dung của tệp bằng cách nhập

Output

hello, hola, bonjour, hallo 6.

Bây giờ, thực hiện chương trình. Chạy lệnh sau trong thiết bị đầu cuối của bạn:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
0

Bạn sẽ nhận được đầu ra sau:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
1

Để xác nhận rằng tệp không còn tồn tại, hãy sử dụng lệnh

  1. cd node-files
41 trong thư mục hiện tại của bạn:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
2

Lệnh này sẽ hiển thị các tệp sau:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
3

Bây giờ bạn đã xác nhận rằng tệp của bạn đã bị xóa với chức năng

  1. cd node-files
31.

Cho đến nay, bạn đã học được cách đọc, ghi, chỉnh sửa và xóa các tệp. Phần sau đây sử dụng một chức năng để di chuyển các tập tin đến các thư mục khác nhau. Sau khi tìm hiểu chức năng đó, bạn sẽ có thể thực hiện các tác vụ quản lý tệp quan trọng nhất trong Node.js.

Bước 4 - Di chuyển các tệp với
  1. cd node-files
43

Các thư mục được sử dụng để sắp xếp các tệp, do đó, việc có thể lập trình các tệp di chuyển từ thư mục này sang thư mục khác giúp quản lý tệp dễ dàng hơn. Bạn có thể di chuyển các tệp trong Node.js với chức năng

  1. cd node-files
43. Trong bước này, bạn sẽ chuyển một bản sao của tệp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0 vào một thư mục mới.

Trước khi bạn có thể mã hóa mô -đun Node.js của mình, bạn cần thiết lập một vài thứ. Bắt đầu bằng cách tạo một thư mục mà bạn sẽ chuyển tệp của bạn vào. Trong thiết bị đầu cuối của bạn, hãy tạo một thư mục

  1. cd node-files
46 trong thư mục hiện tại của bạn:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
4

Bây giờ, hãy sao chép tệp const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 0 đã được sử dụng trong bước đầu tiên bằng lệnh

  1. cd node-files
48:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
5

Kết thúc thiết lập bằng cách mở tệp JavaScript để chứa mã của bạn:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
6

Trong mô -đun Node.js của bạn, bạn sẽ tạo một hàm gọi là

  1. cd node-files
49 gọi hàm
  1. cd node-files
43. Khi sử dụng chức năng
  1. cd node-files
43, bạn cần cung cấp đường dẫn tệp của tệp gốc và đường dẫn của vị trí đích. Đối với ví dụ này, bạn sẽ sử dụng chức năng
  1. cd node-files
49 để di chuyển tệp
  1. cd node-files
53 vào thư mục
  1. cd node-files
46. Bạn cũng sẽ đổi tên thành
  1. cd node-files
55.

Nhập mã sau trong trình soạn thảo văn bản mở của bạn:

node-files/moveFile.js

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
7

Như đã đề cập trước đó, hàm

  1. cd node-files
43 có hai đối số: các đường dẫn tệp nguồn và đích. Hàm này có thể chuyển các tệp sang các thư mục khác, đổi tên một tệp trong thư mục hiện tại của nó hoặc di chuyển và đổi tên cùng một lúc. Trong mã của bạn, bạn đang di chuyển và đổi tên tệp của mình.

Lưu và thoát const fs = require('fs').promises; async function readFile(filePath) { try { const data = await fs.readFile(filePath); console.log(data.toString()); } catch (error) { console.error(`Got an error trying to read the file: ${error.message}`); } } 6 bằng cách nhấn

Output

hello, hola, bonjour, hallo 6.

Tiếp theo, thực hiện chương trình này với

Output

hello, hola, bonjour, hallo 8. Nhập lệnh này để chạy chương trình:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
8

Bạn sẽ nhận được đầu ra này:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
9

Để xác nhận rằng tệp không còn tồn tại trong thư mục hiện tại của bạn, bạn có thể sử dụng lệnh

  1. cd node-files
41:

  1. echo "hello, hola, bonjour, hallo" > greetings.txt
2

Lệnh này sẽ hiển thị các tệp và thư mục này:

  1. nano readFile.js
1

Bây giờ bạn có thể sử dụng

  1. cd node-files
41 để liệt kê các tệp trong thư mục con
  1. cd node-files
46:

  1. nano readFile.js
2

Tệp di chuyển của bạn sẽ xuất hiện trong đầu ra:

  1. nano readFile.js
3

Bây giờ bạn đã sử dụng chức năng

  1. cd node-files
43 để chuyển một tệp từ thư mục hiện tại của bạn vào một thư mục con. Bạn cũng đổi tên tệp với cùng một cuộc gọi chức năng.

Sự kết luận

Trong bài viết này, bạn đã học các chức năng khác nhau để quản lý các tệp với Node.js. Đầu tiên bạn tải nội dung của một tệp với const fs = require('fs').promises; 5. Sau đó, bạn đã tạo các tệp mới và dữ liệu được thêm vào một tệp hiện có với chức năng (node:13085) ExperimentalWarning: The fs.promises API is experimental 6. Bạn đã xóa vĩnh viễn một tệp với chức năng

  1. cd node-files
31, sau đó di chuyển và đổi tên một tệp có
  1. cd node-files
43.

Làm việc với các tệp theo chương trình là một chức năng quan trọng của Node.js. Các chương trình có thể cần xuất các tệp để người dùng sử dụng hoặc có thể cần lưu trữ dữ liệu cho một ứng dụng không phải lúc nào cũng chạy. Với các chức năng mô -đun ____39, các nhà phát triển có quyền kiểm soát cách sử dụng các tệp trong các chương trình Node.js của chúng tôi.

Để tìm hiểu thêm về mô -đun

  1. nano readFile.js
9, bạn có thể đọc tài liệu Node.js. Nếu bạn muốn tiếp tục học Node.js, bạn có thể quay lại cách mã trong loạt Node.js hoặc duyệt các dự án lập trình và thiết lập trên trang chủ đề nút của chúng tôi.

JavaScript có thể truy cập các tệp trên ổ cứng không?

Câu trả lời ngắn gọn là không, vì hộp cát an toàn mà trình duyệt thực hiện xung quanh HTML + JavaScript.no, because of the secure sandboxing the browser does around the HTML + JavaScript.

JavaScript có thể đọc và ghi tệp không?

Các phương thức WriteFile () được sử dụng để đọc và ghi một tệp bằng JavaScript.Tệp được đọc bằng FS.hàm readfile (), là một phương thức sẵn có.Kỹ thuật này đọc toàn bộ tệp vào bộ nhớ và lưu trữ nó trong bộ đệm.. The file is read using the fs. readFile() function, which is an inbuilt method. This technique reads the full file into memory and stores it in a buffer.

JavaScript có thể viết vào đĩa không?

Câu trả lời ngắn gọn là không;Theo mặc định, bạn không thể ghi một tệp vào đĩa cục bộ, bằng cách sử dụng JavaScript đơn giản trong trình duyệt.Bạn sẽ cần một người trợ giúp để làm điều đó.Ví dụ, Tiddlywiki là một công cụ wiki chỉ là một tệp HTML tĩnh duy nhất, nhưng nó có thể tự viết vào đĩa với sự trợ giúp của một applet java (tiết kiệm tiddly).you cannot by default write a file to the local disk, by using plain JavaScript in a browser. You'll need a helper to do that. For example, TiddlyWiki is a wiki engine that is just a single, static HTML file, but it can write itself to disk with the help of a Java applet (Tiddly Saver).

Mã JavaScript có thể truy cập tệp người dùng không?

JavaScript không có quyền truy cập trực tiếp vào các tệp cục bộ do bảo mật và quyền riêng tư.Chúng tôi có thể cung cấp cho người dùng khả năng chọn tệp thông qua phần tử đầu vào tệp mà sau đó chúng tôi có thể xử lý.. We can offer the user the possibility to select files via a file input element that we can then process.

Chủ đề