无法在Node.js(Express)中提取请求数据

唐纳德

我正在尝试从请求(在本例中为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-parserurlEncoded是我是能够成功地做到这一点(的数据只是一个字符串现在)的唯一途径,而它给我的格式{content: ''},其中内容是我用实际的字符串。这不是理想的方法,但是它很简单。但是,这破坏了createWriteStream(req.filePath)上面看到的内容-创建了文件,但是没有内容。

由于我是Node and Express的新手,所以肯定有一些明显的错误提示,我做错了。由于我大部分是通过教学视频编写的,因此我的直觉告诉我这是身体提取的一部分,因为我是自己做的。

罗伯特克莱普

body-parser 耗尽(完全读取)请求流以解析传入的参数,因此请求流中没有剩余数据可写入您的文件。

在我看来,您正在尝试实现文件上传。在这种情况下,您可能想要使用multer而不是的模块body-parser

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Zlib:Node.js 无法从 python 中提取压缩数据

使用 Node Js 和 express 调用来自 rest api 的 post 请求时出错。请求数据变空

通过从Node.js和Express.js中的前端请求数据来创建动态链接

无法在Node.js / Express中访问请求正文数据

Node.js-如何检查请求数据?

如何使用 Node.js/Express 从 MongoDB 中提取数据作为对象而不是数组?

从Node.js中的请求中提取POST参数

无法从请求中提取JSESSIONID

Node.js(带有express&bodyParser):无法从发布请求中获取表单数据

无法下载 Express Node JS

Node.JS请求数据长度小于Content-Length中给出的长度

Node.js,Express无法路由参数化的GET请求

如何使用node.js从.list文件中提取数据

无法从哈希中提取数据

有什么办法可以让后端不必在 Node JS 中多次向数据库请求数据?

无法从Express Node JS中的模块返回数据

无法在自定义服务中获取请求数据?

Firefox WebExtensions:无法获取已取消的请求数据

无法读取 HTTP Post 请求数据 Swift 3

使用猫鼬和Express / Node Js提取数据

Node.js-限制我发出的请求数量

在Node.js中限制对Cassandra DB的并行请求数

无法在 node.js 中发出请求

无法在 Node.js Express 中发布

无法获取路由Express / Node.js

使用Fetch API在Laravel中提取数据时,$ request-> ajax()无法检测到ajax请求

在变量上保存 http 请求的响应并从 node.js 上的函数中提取它

无法在Node js中连接

无法发布/ Node.js