sdk-javascript/examples/express-ex/index.js

46 lines
1011 B
JavaScript

var express = require("express");
var app = express();
const Unmarshaller02 = require("cloudevents-sdk/http/unmarshaller/v02");
var unmarshaller = new Unmarshaller02();
app.use((req, res, next) => {
var data='';
req.setEncoding('utf8');
req.on('data', function(chunk) {
data += chunk;
});
req.on('end', function() {
req.body = data;
next();
});
});
app.post('/', function (req, res) {
console.log(req.headers);
console.log(req.body);
unmarshaller.unmarshall(req.body, req.headers)
.then(cloudevent => {
// pretty print
console.log("Accepted event:");
console.log(JSON.stringify(cloudevent.format(), null, 2));
res.status(201)
.send("Event Accepted");
})
.catch(err => {
console.error(err);
res.status(400)
.header("Content-Type", "application/json")
.send(JSON.stringify(err));
});
});
app.listen(3000, function () {
console.log("Example app listening on port 3000!");
});