Write simple server as suggested here on stackoverflow:
rest_api.js:
const express = require('express');
const bodyParser = require('body-parser')
// Initialize RESTful server
const app = express();
app.set('port', (process.env.PORT || 5000));
app.use(bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({extended: true})); // to support URL-encoded bodies
// Spin up the server
app.listen(app.get('port'), function() {
console.log('running on port', app.get('port'))
});
app.post('/bookinghandler', function (req, res) {
let senderId = req.query.sender;
let email = req.query.email;
let hotelName = req.query.hotelName;
let confirmNumber = req.query.confirmNumber;
let start = req.query.startDate;
let end = req.query.endDate;
}
app.js:
// This loads the environment variables from the .env file
require('dotenv-extended').load();
const builder = require('botbuilder');
const restify = require('restify');
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
// Listen for messages from users
server.post('/api/messages', connector.listen());
var bot = require("./bot")
bot.InitializeBot(connector);
// Load REST API module
var restApi = require("./rest_api");
And want to get parameters through query string (sample request in URL: bookinghandler?sender=100000250242810&email=some@email.com&hotelName=Grand Hotel&confirmNumber=654321&startDate=2017-10-11&endDate=2017-10-15
).
However req.params
, req.param()
, req.body
, req.query
are still empty. What I'm doing wrong? Is it the only way to do it through require('url')
or require('qs')
? If I want to it through express only?