如何在Node.js中接受POST数据

时间:2012-03-01 13:00:59

标签: python http node.js

我正在使用NodeJS使用NowJS向我的客户发送通知,但我需要在通知中发送的数据必须来自我的数据库。

由于我使用Django后端,我可以向我的Node.js服务器发出HTTP请求并发送所需的数据。但我需要能够使用Node.js接受这些数据。我怎么能这样做?

3 个答案:

答案 0 :(得分:3)

  

我该怎么做?

require("http").createServer(function (req, res) {
  doStuff();
}).listen(PORT);

答案 1 :(得分:2)

我是使用Connect / Express的粉丝,所以这里有一个简单的例子:

var express = require('express');
var app = express.createServer();
var nowjs = require("now");
var everyone = nowjs.initialize(app);
app.use(express.bodyParser()); //If you want nice JSON parsing

app.post('/sendNotification', function(req, res){
  console.log(req.params) //Look at the POST params
  console.log(req.body) //Look at the POST body

  everyone.now.receiveMessage(req.body.dataYouCareAbout); 

  res.send('Notification Sent!');
});

然后,您可以使用该“sendNotification”端点接受POST数据并将其(或其中某些内容,或任何其他内容)发送到NowJS。

答案 2 :(得分:1)

使用formidable。以下是他们的文档中的简短示例:

var formidable = require('formidable'),
    http = require('http'),
    util = require('util');

http.createServer(function(req, res) {
  if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
    // parse a file upload
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {
      res.writeHead(200, {'content-type': 'text/plain'});
      res.write('received upload:\n\n');
      res.end(util.inspect({fields: fields, files: files}));
    });
    return;
  }