带有 express not listening/catching webhooks 的 Nodejs

Nodejs with express not listening/catching webhooks

我正在尝试使用 Nodejs 捕获 json webhooks 并表达代码 运行s 很好,我可以 运行 npm start 但它不起作用。 这是网络服务器上即时 运行ning 的代码。知道我哪里出错了吗?

谢谢

var express = require('express');
app = express()
port = 3000;

app.use = (express.json());
app.use = (express.urlencoded({
    extended: true
    }))

app.post('/', function (req, res) {

    var prod = req.body
    console.log(req.body)

    if (prod.total > 0){
    for (var i = 0; i < prod.total; i++ ){
        var sku = body.productos[i].codigo_var;
        var stock = body.productos[i].stock;
        var precio = body.productos[i].precios[0].precio;

        var actualizar = {
            sku,
            stock,
            precio
            }
        console.log(actualizar)
        }

var server = app.listen(port, function () {

    var host = server.address().address
    var port = server.address().port

    console.log('App en http://%s:%s', host, port)

});

您似乎缺少 POST 路线的一些右括号。

您还需要 运行 npm i body-parser 因为 express 不再内置该功能。

最后我注意到 body 变量没有在任何地方声明,所以我更新到 prod 有 req.body 数据。

我能够在本地获取以下代码 运行 并遍历我发送的 json 数据。

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

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }))

// parse application/json
app.use(bodyParser.json())

app.post('/', function (req, res) {
  var prod = req.body

  if (prod.total > 0) {
    for (var i = 0; i < prod.total; i++ ) {
      var sku = prod.productos[i].codigo_var;
      var stock = prod.productos[i].stock;
      var precio = prod.productos[i].precios[0].precio;

      var actualizar = {
        sku,
        stock,
        precio,
      }
      console.log(actualizar)
      return res.send(actualizar)
    }
  // Missing brackets
  }
});

var server = app.listen(port, function () {
  var host = server.address().address
  var port = server.address().port

  console.log('App en http://%s:%s', host, port)
});