Node.js không chạy trong trình duyệt, do đó bạn sẽ không có sẵn đối tượng document
. Trên thực tế, bạn thậm chí sẽ không có một cây Dom nào cả. Nếu bạn hơi bối rối vào thời điểm này, tôi khuyến khích bạn đọc thêm về nó trước khi đi xa hơn.
Có một vài phương pháp bạn có thể chọn để làm những gì bạn muốn.
Phương pháp 1: Phục vụ tệp trực tiếp qua HTTP
Bởi vì bạn đã viết về việc mở tệp trong trình duyệt, tại sao bạn không sử dụng khung sẽ phục vụ tệp trực tiếp dưới dạng dịch vụ HTTP, thay vì có quy trình hai bước? Bằng cách này, mã của bạn sẽ năng động hơn và dễ dàng duy trì [không đề cập đến HTML của bạn luôn cập nhật].
Có rất nhiều khuôn khổ ngoài kia cho điều đó:
- HTTP [API gốc nút]
- Liên kết
- Koa
- Express [sử dụng kết nối]
- Sails [xây dựng trên Express]
- Thiên thạch
- Tiếp theo
- Astro
- etc.
Cách cơ bản nhất bạn có thể làm những gì bạn muốn là:
var http = require['http'];
http.createServer[function [req, res] {
var html = buildHtml[req];
res.writeHead[200, {
'Content-Type': 'text/html',
'Content-Length': html.length,
'Expires': new Date[].toUTCString[]
}];
res.end[html];
}].listen[8080];
function buildHtml[req] {
var header = '';
var body = '';
// concatenate header string
// concatenate body string
return ''
+ '' + header + '' + body + '';
};
Và truy cập HTML này với //localhost:8080
từ trình duyệt của bạn.
[Chỉnh sửa: Bạn cũng có thể phục vụ họ với một máy chủ HTTP nhỏ.]Edit: you could also serve them with a small HTTP server.]
Phương pháp 2: Chỉ tạo tệp
Nếu những gì bạn đang cố gắng làm chỉ đơn giản là tạo ra một số tệp HTML, thì hãy đơn giản. Để thực hiện truy cập IO trên hệ thống tệp, Node có API cho điều đó, được ghi lại ở đây.
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
Lưu ý: Hàm buildHtml
giống hệt như trong Phương pháp 1. The buildHtml
function is exactly the same as in Method 1.
Phương pháp 3: Việc đổ tệp trực tiếp vào stdout
Đây là triển khai Node.js cơ bản nhất và yêu cầu ứng dụng gọi để xử lý đầu ra. Để xuất một cái gì đó trong nút [tức là stdout], cách tốt nhất là sử dụng console.log[message]
trong đó
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
0 là bất kỳ chuỗi, hoặc đối tượng, v.v.var html = buildHtml[];
console.log[html];
Lưu ý: Hàm buildHtml
giống hệt như trong Phương pháp 1 [một lần nữa] The buildHtml
function is exactly the same as in Method 1 [again]
Nếu tập lệnh của bạn được gọi là
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
2 [ví dụ], trong hệ thống dựa trên Linux/Unix, chỉ cần làm$ node html-generator.js > path/to/file
Sự kết luận
Vì nút là một hệ thống mô -đun, bạn thậm chí có thể đặt hàm buildHtml
bên trong mô -đun riêng của nó và chỉ cần viết bộ điều hợp để xử lý HTML theo cách bạn muốn. Cái gì đó như
var htmlBuilder = require['path/to/html-builder-module'];
var html = htmlBuilder[options];
...
Bạn phải nghĩ rằng "phía máy chủ" chứ không phải "phía máy khách" khi viết javascript cho node.js; Bạn không ở trong trình duyệt và/hoặc giới hạn trong hộp cát, ngoài động cơ V8.
Đọc thêm, tìm hiểu về NPM. Hi vọng điêu nay co ich.
Node.js như một máy chủ tệp
Mô -đun hệ thống tệp Node.js cho phép bạn làm việc với hệ thống tệp trên máy tính của bạn.
Để bao gồm mô -đun hệ thống tệp, hãy sử dụng phương thức
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
4:Sử dụng phổ biến cho mô -đun hệ thống tệp:
- Đọc tệp
- Tạo tập tin
- Cập nhật tệp
- Xóa các tập tin
- Đổi tên tập tin
Đọc tệp
Phương pháp
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
5 được sử dụng để đọc các tệp trên máy tính của bạn.Giả sử chúng ta có tệp HTML sau [nằm trong cùng thư mục với Node.js]:
demofile1.html
Đoạn đầu của tôi.
My Header
My paragraph.
Tạo tệp Node.js đọc tệp HTML và trả về nội dung:
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
var fs = require['fs'];
http.createServer[function [req, res] {
fs.readFile['demofile1.html', function[err, data] {
res.writeHead[200, {'Content-Type': 'text/html'}];
res.write[data];
return res.end[];
}];
}].listen[8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Bắt đầu demo_readfile.js:
C: \ user \ tên của bạn> node demo_readfile.js
Nếu bạn đã làm theo cùng các bước trên máy tính của mình, bạn sẽ thấy kết quả tương tự như ví dụ: // localhost: 8080
Tạo tập tin
Mô -đun hệ thống tệp có các phương thức tạo tệp mới:
6var fs = require['fs']; var fileName = 'path/to/file'; var stream = fs.createWriteStream[fileName]; stream.once['open', function[fd] { var html = buildHtml[]; stream.end[html]; }];
7var fs = require['fs']; var fileName = 'path/to/file'; var stream = fs.createWriteStream[fileName]; stream.once['open', function[fd] { var html = buildHtml[]; stream.end[html]; }];
8var fs = require['fs']; var fileName = 'path/to/file'; var stream = fs.createWriteStream[fileName]; stream.once['open', function[fd] { var html = buildHtml[]; stream.end[html]; }];
Phương thức
var fs = require['fs'];
var fileName = 'path/to/file';
var stream = fs.createWriteStream[fileName];
stream.once['open', function[fd] {
var html = buildHtml[];
stream.end[html];
}];
6 nối nội dung được chỉ định vào một tệp. Nếu tệp không tồn tại, tệp sẽ được tạo:Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['Saved!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['Saved!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['Saved!'];
}];
Bắt đầu demo_readfile.js:
C: \ user \ tên của bạn> node demo_readfile.js
Nếu bạn đã làm theo cùng các bước trên máy tính của mình, bạn sẽ thấy kết quả tương tự như ví dụ: // localhost: 8080
6var fs = require['fs']; var fileName = 'path/to/file'; var stream = fs.createWriteStream[fileName]; stream.once['open', function[fd] { var html = buildHtml[]; stream.end[html]; }];
8var fs = require['fs']; var fileName = 'path/to/file'; var stream = fs.createWriteStream[fileName]; stream.once['open', function[fd] { var html = buildHtml[]; stream.end[html]; }];
Tạo tập tin
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['Updated!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['Replaced!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Bắt đầu demo_readfile.js:
C: \ user \ tên của bạn> node demo_readfile.js
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['File deleted!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Bắt đầu demo_readfile.js:
C: \ user \ tên của bạn> node demo_readfile.js
Thí dụ
var http = yêu cầu ['http']; var fs = yêu cầu ['fs']; http.createserver [function [req, res] {& nbsp; fs.readfile ['demofile1.html', function [err, data] & NBSP; []; & nbsp;}];}]. Nghe [8080];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
if [err] throw err;
console.log['File Renamed!'];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_readfile.js" và bắt đầu tệp:
Bắt đầu demo_readfile.js:
C: \ user \ tên của bạn> node demo_readfile.js