可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am using Express 3, and would like to handle text/plain POSTs.
Express 3 uses connect's bodyParser now (I think the old Express code got moved to connect). The documentation for bodyParser gives some details about how to make it support additional file types. And I found an excellent blog post about how handling text/plain was done in old versions of Express).
How can I make Express (via connect) handle text/plain POSTs?
回答1:
With bodyParser as dependency, add this to your app.js
file.
var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.text());
Happy Noding.
回答2:
https://gist.github.com/3750227
app.use(function(req, res, next){ if (req.is('text/*')) { req.text = ''; req.setEncoding('utf8'); req.on('data', function(chunk){ req.text += chunk }); req.on('end', next); } else { next(); } });
Will add the text as req.text
回答3:
I would just make a module similar to the json.js middleware module and just don't bother converting the buf
data into anything else. Wrap it into a plain.js
file, apply some decent "don't repeat yourself" refactoring, and submit a pull request to connect. Seems generally handy. However, note that while convenient, large enough request bodies will require streaming straight to disk at some point so you don't consume all the memory in your node server.