类似于动态的Express路由,可打印动态对象

时间:2018-11-10 22:36:38

标签: node.js reactjs express

我正在发回一个对象,表示需要通过escpos打印(对于Ubuntu 18上的热敏打印机)。

我的前端服务器有反应。

在第一组变量之后,我需要打印“收据”以获得可能属于各种对象的信息

date
name
customer name
customer phone
[array of objects]

我可以为第一组变量创建路由

router.post('/printer/:date/:name/:custName/:custPhone/', function(req,res,next) {

但是是否可以为诸如以下的各种对象动态添加到该路由:

{ type: 'pizza', drinks : '2' }

{ extra : 'garlic bread' }

我目前正在前端这样发送数据:

axios.post('/api/printer/' + newDate + '/' + userName + '/' + selectedCustomerName + '/' + selectedCustomerPhone)

我考虑过这样的发布:

            axios.post('/api/printer', {
            name : userName,
            date : newDate,
            customerName : selectedCustomerName,
            customerPhone: selectedCustomerPhone,
            type : orderType,
            extra : orderExtra,
            drink : orderDrink
        })

,然后在Express中获取它,解析信息,然后发送到打印机,这似乎是最本地的方法。

我很好奇是否可以使用“动态”路线的方法吗?

1 个答案:

答案 0 :(得分:1)

您不需要将所有需要的变量设置为路由参数。您应该像“考虑”那样将它们全部放入请求正文中。

然后在服务器上

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

router.post('/printer', function(req, res) {

  const data = req.body;
  console.log(data)

  //Do what ever you want 

  res.send('OK')

}