Я пытаюсь загрузить файл .mp3 на сервер узла в моем локальном компьютере.Для этого я использовал 2 подхода:
- Использование uploadit.js в качестве отдельного файла - в этом
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.path;
var newpath = './audio/audio.mp3';
fs.readFile(oldpath, function(err, data){
if(err) throw err;
fs.writeFile(newpath, data, function(err){
if(err) throw err;
res.write('<center>File uplaoded and saved</center>');
res.end();
});
fs.unlink(oldpath, function(err){
if(err) throw err;
});
});
});
}
else{
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<div><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></div>');
return res.end();
}
}).listen(4200);
Приложение запускается через порт 4200 и доступно.
В Подходе 2 я пытался избежать создания нового порта (так как при запуске в env. Наподобие Heroku невозможно получить доступ к ПОРТУ).Поэтому я попытался интегрировать код в другой файл, когда он загружает содержимое файла
var express = require('express');
var app = express();
var server = require('http').Server(app);
var fs = require('fs');
var io = require('socket.io')(server);
var ss = require('socket.io-stream');
app.use(express.static(`${__dirname}/html`));
server.listen('5001');
app.get('/uploadform', function (req, res) {
if(req.url == "/fileupload"){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files){
var oldpath = files.filetoupload.path;
var newpath = './audio/audio.mp3';
fs.readFile(oldpath, function(err, data){
if(err) throw err;
fs.writeFile(newpath, data, function(err){
if(err) throw err;
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<center>File uplaoded and saved</center>');
res.end();
});
fs.unlink(oldpath, function(err){
if(err) throw err;
});
});
});
}
else{
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<div'>
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></div>');
return res.end();
}
});
Здесь, когда я выбираю файл и нажимаю кнопку отправки, он выводит меня на страницу ошибки со статусом 404, как показано ниже:
Перепробовал все известные мне возможные способы, но все же нужна была помощь в том, как решить эту проблему и беспрепятственно загрузить файл.
Заранее спасибо.