Ich habe einen Dienst namens “localhost:3000/returnStat”, der einen Dateipfad als Parameter annehmen sollte. Zum Beispiel „/BackupFolder/toto/tata/titi/myfile.txt“.
Wie kann ich diesen Dienst in meinem Browser testen? Wie kann ich diese Anfrage beispielsweise mit Express formatieren?
exports.returnStat = function(req, res) {
var fs = require('fs');
var neededstats = [];
var p = __dirname + "https://stackoverflow.com/" + req.params.filepath;
fs.stat(p, function(err, stats) {
if (err) {
throw err;
}
neededstats.push(stats.mtime);
neededstats.push(stats.size);
res.send(neededstats);
});
};
var http = require('http');
var url = require('url');
var fs = require('fs');
var neededstats = [];
http.createServer(function(req, res) {
if (req.url == '/index.html' || req.url == "https://stackoverflow.com/") {
fs.readFile('./index.html', function(err, data) {
res.end(data);
});
} else {
var p = __dirname + "https://stackoverflow.com/" + req.params.filepath;
fs.stat(p, function(err, stats) {
if (err) {
throw err;
}
neededstats.push(stats.mtime);
neededstats.push(stats.size);
res.send(neededstats);
});
}
}).listen(8080, '0.0.0.0');
console.log('Server running.');
Ich habe Ihren Code nicht getestet, aber andere Dinge funktionieren
Wenn Sie die Pfadinformationen von der Anforderungs-URL abrufen möchten
var url_parts = url.parse(req.url);
console.log(url_parts);
console.log(url_parts.pathname);
1.Wenn Sie die URL-Parameter immer noch nicht lesen können, korrigieren Sie einfach Ihren Dateipfad in meinem Beispiel. Wenn Sie index.html im selben Verzeichnis wie Servercode platzieren, würde es funktionieren …
2. Wenn Sie eine große Ordnerstruktur haben, die Sie mit node hosten möchten, würde ich Ihnen raten, ein Framework wie expressjs zu verwenden
Wenn Sie eine Rohlösung für den Dateipfad wünschen
var http = require("http");
var url = require("url");
function start() {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
Ja, erstellen Sie einen REST-Aufruf, siehe diesen Artikel erichonorez.wordpress.com/2013/02/10/…
– letzter Junge
21. September 2013 um 10:28 Uhr
und mit dem Browser, nur für schnelle Tests
– Nabil Djarallah
21. September 2013 um 11:04 Uhr