我正在尝试从请求中提取数据(在本例中为 a POST
)并且遇到了麻烦。我正在使用body-parser
模块这样做。下面是我的部分代码(注意我使用的是 ES6 语法):
let bodyParser = require('body-parser')
var urlEncodedParser = bodyParser.urlEncoded({extended: true})
app.post('*', setFileMeta, setDirDetails, urlEncodedParser, (req, res, next) => {
async ()=> {
if (!req.stat) return res.send(405, 'File does not exist')
if (req.isDir) return res.send(405, 'Path is a directory') // This is an advanced case
await fs.promise.truncate(req.filePath, 0)
req.pipe(fs.createWriteStream(req.filePath)) // Filepath is a file
// This below line is where I need the body
sendToClients('update', req.url, 'file', req.body, Date.now())
res.end()
}().catch(next)
})
对于使用实际提取数据body-parser
,urlEncoded
是我能够成功完成它的唯一方法(数据现在只是一个字符串),它以{content: ''}
内容是我正在使用的实际字符串的格式给我。这并不理想,但它的工作原理很简单。但是,这破坏了createWriteStream(req.filePath)
如上所示 - 文件已创建,但没有内容。
因为我是 Node 和 Express 的新手,所以肯定有一些明显的地方做错了。由于我在教学视频的帮助下编写了大部分内容,我的直觉告诉我这是身体提取部分,因为我是自己做的。