javascript - 通过帖子消息发送代码不起作用

标签 javascript node.js express postman

我想将代码发送到某个 Node 应用程序,我使用 postman 发送消息,并在正文中放置以下内容:

module.exports = function() {
    var express = require('express'),
        app = express();
    app.set('port', process.env.PORT || 3000);
    return app;
}

在我放置的请求的 header 中

content-Type   application/text/enriched

在 Node 代码中我使用以下

module.exports = function (app) {
    fs = require('fs');
    var bodyParser = require('body-parser');
    ...
app.post('/bb',function(req,res){
        var fileContent = req.body

文件内容为空,我可以看到它可以工作,因为它在调试中停止

最佳答案

如果您想添加自定义内容类型,那么您需要记住两件事:

  1. 内容类型不能是“application/text/enriched”,而“application/text-enriched”则可以。最多两个“字”。
  2. 您必须在主体解析器配置上提供自定义接受 header ,但当您使用自定义 header 时主体解析器会返回一个缓冲区

参见示例:

var express = require('express')
var app = express()
var bodyParser = require('body-parser')

app.use(bodyParser.raw({ type: 'application/text-enriched' }))

app.post('/demo', function(req, res) {
    console.log('POST DATA')
    console.log('STREAM', req.body)
    console.log('STREAM to STRING', req.body.toString())

    res.status(200).send('ok');
});

app.listen(3000);

您可以使用curl在控制台中进行测试:

curl 'http://localhost:3000/demo' -d 'name=john&surname=doe' -H 'Content-Type: application/text-enriched'

我建议您尝试不使用自定义内容类型 header ,因为事情会更容易。希望我的解释对您有所帮助。

关于javascript - 通过帖子消息发送代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30839777/

相关文章:

javascript - 过滤对象数组并设置状态数组变量

javascript - 我无法启用平滑 slider 自动播放

javascript - 如何在窗口滚动时为导航栏设置动画

javascript - 找不到全局定义的变量

mysql - 无法使用 nodejs(openshift 应用程序)连接到 MySQL 数据库

javascript - 如何为开始使用 npm start 的 node js express 应用程序创建pm2生态系统.json文件?

javascript - 在 NativeScript 中在后台运行任务

ios - 使用 Node.js 将音频流式传输到 html5 音频标签并绕过 iOS 限制

javascript - 如何缩小并连接一个充满 JavaScript 文件的目录?

javascript - 调用异步函数