【问题标题】:how to handle multiple endpoints in nodejs如何在nodejs中处理多个端点
【发布时间】:2019-09-22 17:58:22
【问题描述】:

我正在开发 SAP Conversational AI 机器人来处理登录到 sap 和通过单个 webhook.js 文件查询产品,该文件总是命中 /login 部分,我想修改这个文件(presales_assistance_webhook.js)来处理,多帖子支持,由于 SAP 对话 AI 限制,不能使用多个文件。我是 nodejs 新手,需要一些专家支持。

//1.login 意图:app.post('/login', (req, res) => {})

//2.产品查询意图:app.post('/presales', (req, res) => {})

presales_assistance_webhook.js

const express = require('express')
const bodyParser = require('body-parser')

const app = express()
const port = process.env.PORT || 5000
app.use(bodyParser.json())

app.post('/login', (req, res) => {
  console.log(req.body)


  res.send({
    replies: [{
      type: 'text',
      content: 'Welcome to b1 system !',
    }],
    conversation: {
      memory: {
        key: 'value'
      }
    }
  })
})
app.post('/presales', (req, res) => {
  console.log(req.body)


  res.send({
    replies: [{
      type: 'text',
      content: 'Output ok',
    }],
    conversation: {
      memory: {
        key: 'value'
      }
    }
  })
})

app.post('/errors', (req, res) => {
  console.log(req.body)
  res.send()
})

app.listen(port, () => {
  console.log(`Server is running on port ${port}`)
}) 

【问题讨论】:

    标签: node.js sap-conversational-ai


    【解决方案1】:

    你做得很好。该代码对我有用。

    const express = require('express')
    const bodyParser = require('body-parser')
    
    const app = express()
    const port = process.env.PORT || 5000
    app.use(bodyParser.json())
    
    app.post('/login',getLoginInformations);
    app.post('/presales',getPresalesInformations);
    
    function getLoginInformations(req, res) {  
      console.log(req.body) 
      res.send({
        replies: [{
          type: 'text',
          content: 'Welcome to b1 system !'
        }],
        conversation: {
          memory: {
            key: 'value'
          }
        }
      })
    }
    
    function getPresalesInformations(req, res) {  
      console.log(req.body) 
      res.send({
        replies: [{
          type: 'text',
          content: 'Output ok'
        }],
        conversation: {
          memory: {
            key: 'value'
          }
        }
      })
    } 
    app.post('/errors', (req, res) => {
      console.log(req.body)
      res.send()
    })
    
    app.listen(port, () => {
      console.log(`Server is running on port ${port}`)
    })
    
    

    【讨论】:

    • 显式路由器没有解决问题,@severino 将修改代码
    • @serverono 在我使用显式路由器后,从 SAP Conversational AI 机器人返回 No Result ,修改后的代码运行良好
    【解决方案2】:

    根据this的回答你可以简单地使用

        app.get(
        ['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
        function ( request, response ) {
    
        }
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2021-06-22
      • 2016-10-22
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多