Express.js原生不支持处理二进制数据。要使用express.raw()来处理二进制数据,需要添加中间件并使用body-parser来解析请求体。以下是一个解决方案示例:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.raw({ type: 'application/octet-stream' }));
app.post('/', (req, res) => {
console.log(req.body); // 输出二进制数据
res.send('Received binary data');
});
app.listen(3000, () => {
console.log('Server started at http://localhost:3000');
});
上面的示例代码使用了body-parser中间件来处理二进制数据。首先,使用bodyParser.raw()
函数来定义处理二进制数据的中间件。然后在它之后添加一个请求处理函数,使用req.body
来获取请求的二进制数据。
需要注意的是,body-parser只会解析指定类型的请求体。在示例中,我们设置了type: 'application/octet-stream'
来表示接收的是二进制数据类型的请求体。如果请求体类型不是指定类型中的一种,那么body-parser不会解析它,并且req.body
将会是undefined。