Node.js Laai lêers op
Die formidabele module
Daar is 'n baie goeie module om met lêeroplaaie te werk, genaamd "Formidable".
Die Formidable-module kan met behulp van NPM afgelaai en geïnstalleer word:
C:\Users\Your Name>npm install formidable
Nadat jy die Formidable-module afgelaai het, kan jy die module by enige toepassing insluit:
var formidable = require('formidable');
Laai lêers op
Nou is jy gereed om 'n webblad in Node.js te maak waarmee die gebruiker lêers na jou rekenaar kan oplaai:
Stap 1: Skep 'n oplaaivorm
Skep 'n Node.js-lêer wat 'n HTML-vorm skryf, met 'n oplaaiveld:
Voorbeeld
Hierdie kode sal 'n HTML-vorm produseer:
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}).listen(8080);
Stap 2: Ontleed die opgelaaide lêer
Sluit die Formidable-module in om die opgelaaide lêer te kan ontleed sodra dit die bediener bereik.
Wanneer die lêer opgelaai en ontleed word, word dit in 'n tydelike vouer op jou rekenaar geplaas.
Voorbeeld
Die lêer sal opgelaai word en in 'n tydelike vouer geplaas word:
var http = require('http');
var formidable = require('formidable');
http.createServer(function
(req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req,
function (err, fields, files) {
res.write('File
uploaded');
res.end();
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);
Stap 3: Stoor die lêer
Wanneer 'n lêer suksesvol na die bediener opgelaai is, word dit op 'n tydelike vouer geplaas.
Die pad na hierdie gids kan gevind word in die "lêers" voorwerp, deurgegee as die derde argument in die parse()
metode se terugbelfunksie.
Om die lêer na die gids van jou keuse te skuif, gebruik die Lêerstelsel-module en hernoem die lêer:
Voorbeeld
Sluit die fs-module in en skuif die lêer na die huidige vouer:
var http = require('http');
var formidable = require('formidable');
var fs = require('fs');
http.createServer(function
(req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req,
function (err, fields, files) {
var
oldpath = files.filetoupload.filepath;
var
newpath = 'C:/Users/Your Name/' + files.filetoupload.originalFilename;
fs.rename(oldpath, newpath, function (err) {
if (err) throw
err;
res.write('File uploaded
and moved!');
res.end();
});
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form
action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input
type="file" name="filetoupload"><br>');
res.write('<input
type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);