Node.js 在Express中处理文本/纯文本(通过connect)?

Node.js 在Express中处理文本/纯文本(通过connect)?,node.js,express,connect,Node.js,Express,Connect,我使用的是Express 3,希望处理文本/普通帖子 Express 3现在使用(我认为旧的Express代码被移动到connect)。bodyParser的文档提供了有关如何使其支持其他文件类型的一些详细信息。我发现了一篇关于如何做的优秀博客文章) 我是否应该明确要求connect(并让node要求缓存修改后的版本)?或者connect是否通过express在某处公开 connect.bodyParser没有“parse”键 如何使Express(通过connect)处理文本/普通帖子?我

我使用的是Express 3,希望处理文本/普通帖子

Express 3现在使用(我认为旧的Express代码被移动到connect)。bodyParser的文档提供了有关如何使其支持其他文件类型的一些详细信息。我发现了一篇关于如何做的优秀博客文章)

  • 我是否应该明确要求connect(并让node要求缓存修改后的版本)?或者connect是否通过express在某处公开

  • connect.bodyParser没有“parse”键


如何使Express(通过connect)处理文本/普通帖子?

我只需要制作一个类似于中间件模块的模块,而不必费心将
buf
数据转换成任何其他内容。将其包装到一个
plain.js
文件中,应用一些体面的“不要重复自己”重构,并提交一个连接请求。看起来总的来说很方便。但是,请注意,虽然方便,但足够大的请求主体在某个时候需要直接流到磁盘,这样您就不会消耗节点服务器中的所有内存。

将文本添加为req.text

和as dependency,将其添加到您的
app.js
文件中

var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.text());
愉快的点头。

在express.js“^4.16…”中,以下代码对我来说很好:

// parse an HTML body as a string
app.use(bodyParser.text({ type: 'text/*' }))
代码的扩展部分如下所示:

// parse an HTML body as a string
app.use(bodyParser.text({ type: 'text/*' }))

// Enable CORS for ExpressJS
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*')
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS')
  res.header('Access-Control-Allow-Credentials', true)
  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Methods, Credentials')
  next()
})


// Api url 
app.post('/api/myApi', (req, res) => {

  const bodyJson = JSON.parse(req.body)
  // do something

}

您可以试试这个:

var expressApi= (req, res,params)=>{
    console.log('req.body',params);
    var body = '';
    req.on('data', function (data) {
        body += data;
    });
    req.on('end', function () {
        res.write({status:200,message:'read data'}); 
    }); 
}

正如@oozzal所建议的(如下),使用:app.use(bodyParser.text());没有上面的代码就可以工作。这不是真正的惯用表达-最好使用
bodyParser()
,但它是纯javascript的,对吗?没有任何框架,你是对的,兄弟,但这是一个明确的问题。请看标题。
var expressApi= (req, res,params)=>{
    console.log('req.body',params);
    var body = '';
    req.on('data', function (data) {
        body += data;
    });
    req.on('end', function () {
        res.write({status:200,message:'read data'}); 
    }); 
}