Javascript 具有节点和Express的HTTP GET请求(Nexmo)

Javascript 具有节点和Express的HTTP GET请求(Nexmo),javascript,node.js,express,nexmo,Javascript,Node.js,Express,Nexmo,我正在尝试处理来自Nexmo的入站短信,但很难找到答案。我对Node和Express也比较陌生。他们的文档显示,他们发出了webhook捕获的请求。我尝试了他们的示例代码,并将其添加到我的routes文件中,如下所示 var url = require('url'); module.exports = function(app) { app.get('/webhook', function(request, response){ var url_parts = url.

我正在尝试处理来自Nexmo的入站短信,但很难找到答案。我对Node和Express也比较陌生。他们的文档显示,他们发出了webhook捕获的请求。我尝试了他们的示例代码,并将其添加到我的routes文件中,如下所示

var url = require('url');

module.exports = function(app) {
    app.get('/webhook', function(request, response){
        var url_parts = url.parse(request.url,true);

        if (!url_parts.hasOwnProperty('to') || !url_parts.hasOwnProperty('msisdn') || !url_parts.hasOwnProperty('text'))
            console.log('This is not an inbound message');
        else {
            //This is a DLR, check that your message has been delivered correctly
            if (url_parts.hasOwnProperty('concat'))
            {
              console.log("Fail:" +  url_parts.status + ": " + url_parts.err-code  +  ".\n" );
            }
            else {
              console.log("Success");
              /*
               * The following parameters in the delivery receipt should match the ones
               * in your request:
               * Request - from, dlr - to\n
               * Response - message-id, dlr - messageId\n
               * Request - to, Responese - to, dlr - msisdn\n
               * Request - client-ref, dlr - client-ref\n
               */
            }

        }
        response.writeHead(200, {"Content-Type": "text/html"});
        response.end();
    });
};
require('./app/server/routes')(app);

if (app.get('env') == 'development') app.use(errorHandler());


http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});
这是我呈现所有页面的文件,我做这个“/webhook”页面只是为了接收入站数据。当我将回调url粘贴到nexmo中时,它从未确认它,这让我觉得我可能没有正确处理它

他们在http.createServer中显示了它,我在顶级文件中使用了不同的名称,如下所示

var url = require('url');

module.exports = function(app) {
    app.get('/webhook', function(request, response){
        var url_parts = url.parse(request.url,true);

        if (!url_parts.hasOwnProperty('to') || !url_parts.hasOwnProperty('msisdn') || !url_parts.hasOwnProperty('text'))
            console.log('This is not an inbound message');
        else {
            //This is a DLR, check that your message has been delivered correctly
            if (url_parts.hasOwnProperty('concat'))
            {
              console.log("Fail:" +  url_parts.status + ": " + url_parts.err-code  +  ".\n" );
            }
            else {
              console.log("Success");
              /*
               * The following parameters in the delivery receipt should match the ones
               * in your request:
               * Request - from, dlr - to\n
               * Response - message-id, dlr - messageId\n
               * Request - to, Responese - to, dlr - msisdn\n
               * Request - client-ref, dlr - client-ref\n
               */
            }

        }
        response.writeHead(200, {"Content-Type": "text/html"});
        response.end();
    });
};
require('./app/server/routes')(app);

if (app.get('env') == 'development') app.use(errorHandler());


http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});
我应该在这里抓住它吗?或者我应该在客户端这样做?我已经签出了,但我不太明白,作为主机我应该放什么,或者这根本不是正确的方法?我也看了一下,我认为我在上面发布的代码也做了同样的事情。为任何帮助干杯

编辑:我已经在这样一个简单的应用程序中运行了它:

var express = require('express');
var bodyParser = require('body-parser');
var url = require('url');
var app = express();

app.use(bodyParser.urlencoded({
  extended: true
}));

app.get('/:pagename', function(req,res) {
  var url_parts = url.parse(req.url,true);
  console.log(url_parts.query.msisdn);
  res.sendfile('public/' + req.params.pagename + '.html');
});

var port = process.env.PORT || 3333;
app.listen(port);
但我无法将其完全应用到应用程序中。我仍然不确定我应该把它放在哪里,我以为它会在路由器文件中,但我从来没有在我的日志文件中看到来自nexmo的请求,所以我不确定那里发生了什么