2014-06-17 5 views
0

я пишу приложения на стороне сервера с express & node.js.Node.js и Экспресс/тела анализатор

У меня есть следующий:

app.configure(function() { 
    app.use(express.bodyParser()); 
}); 

Все работает хорошо, но:

  1. Как Насколько я понимаю, этот метод устарел.

  2. Следующий способ не работает. Он пишет несколько случайных символов, вместо того, чтобы писать правильные символы:

    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()? Это исправит мою проблему с написанием?

ответ

0

Вам необходимо использовать промежуточное ПО Body-parser.

Вы можете установить его с

npm install body-parser 

и включить его с помощью экспресс

var bodyparser = require('body-parser'); 
app.use(bodyparser()); 

Если вы хотите загрузки файлов тоже, то есть смотреть на multer.

+0

Спасибо, немного по-прежнему напишите некоторые случайные символы. существует проблема с 'fs.write' и' fs.read' этого метода? –

Смежные вопросы