【问题标题】:Send code via post message is not working通过帖子消息发送代码不起作用
【发布时间】:2015-06-15 17:13:57
【问题描述】:

我想将代码发送到某个节点应用程序,我使用邮递员发布消息,并在 body 中输入以下内容:

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

在我提出的请求的标题中

content-Type   application/text/enriched

在节点代码中我使用以下

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

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

【问题讨论】:

  • 你能举一个你试图发送的代码的例子吗?

标签: javascript node.js express postman


【解决方案1】:

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

  1. 内容类型不能是“application/text/enriched”,另一方面“application/text-enriched”是可以的。最多两个“单词”。
  2. 您必须在正文解析器配置中提供自定义接受标头,但是当您使用自定义标头时,正文解析器会返回一个缓冲区

看例子:

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'

我建议您尽量不要使用自定义内容类型标题,因为这样会更容易。希望我的解释对你有所帮助。

【讨论】:

猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 2017-02-09
  • 2016-03-17
  • 1970-01-01
  • 2020-12-02
  • 2022-11-24
  • 2015-02-12
  • 2023-03-12
相关资源
最近更新 更多