【发布时间】:2017-08-28 22:20:55
【问题描述】:
按照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");
并且想通过查询字符串获取参数(URL中的示例请求:bookinghandler?sender=100000250242810&email=some@email.com&hotelName=Grand Hotel&confirmNumber=654321&startDate=2017-10-11&endDate=2017-10-15)。
但是req.params、req.param()、req.body、req.query 仍然是空的。我做错了什么?这是通过require('url') 或require('qs') 完成的唯一方法吗?如果我只想通过快递?
【问题讨论】:
-
嗯,通常如果您正在寻找查询参数,它应该是一个 GET 方法,不是吗?
app.get(...) -
@MarcoTalento,但 GET 可能对我也不起作用——一切都是空的。
-
修改的时候记得重启服务器吗?
-
@Boaz 当然! :) 否则返回
Cannot GET /bookinghandler
标签: node.js express query-string