#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
Я пишу серверное приложение с express
amp; node.js.
У меня есть следующий:
app.configure(function () {
app.use(express.bodyParser());
});
Все работает хорошо, но:
-
Насколько я понимаю, этот метод устарел.
-
Следующий метод не работает должным образом. Он записывает несколько случайных символов вместо записи правильных символов:
app.post('/randomWrite', function (req, res) { var fileName = req.body.name; var contentLength = parseInt(req.files.file._writeStream.bytesWritten); var start = parseInt(req.body.chunk) * 102400; var buffer = new Buffer(parseInt(req.files.file._writeStream.bytesWritten)); fs.open(req.files.file.path, 'r', function (status, fd) { if (fd == null) { console.log("Can't open the file with the fd"); return; } fileNameLocation = "./" fileName; fs.open(fileNameLocation, 'w ', function (err, fd1) { fs.read(fd, buffer, 0, contentLength, start, function (err, bytesRead, buffer1) { if (err) console.log("ERROR: " err); fs.write(fd1, buffer1, 0, contentLength, start, function (err, bytesWrite, buffer) { if (req.body.chunk == req.body.chunks - 1) { fs.close(fd, function (err) { }) fs.close(fd1, function (err) { }) FileServer.prototype.returnResCodeWithId(res, 200, id); } else { fs.close(fd, function (err) { }) fs.close(fd1, function (err) { }) FileServer.prototype.returnResCode(res, 200); } }) }) }) })
Вместо того, чтобы записывать правильное смещение, кажется, что что-то пошло не так, и записывается некоторый текст из промежуточного программного обеспечения (bodyParser).
Как я могу изменить express.bodyParser()? Это решит мою проблему с записью?
Ответ №1:
Вам необходимо использовать промежуточное программное обеспечение для синтаксического анализа тела.
Вы можете установить его с помощью
npm install body-parser
и включите его с помощью Express, используя
var bodyparser = require('body-parser');
app.use(bodyparser());
Если вы тоже хотите загружать файлы, тогда взгляните на multer.
Комментарии:
1. Спасибо, бит все еще пишет несколько случайных символов. есть проблема с
fs.write
иfs.read
этого метода?