我正在发回一个对象,表示需要通过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中获取它,解析信息,然后发送到打印机,这似乎是最本地的方法。
我很好奇是否可以使用“动态”路线的方法吗?
答案 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')
}