我已经尝试过此代码:
const invNum = require('invoice-number');
router.post('/checkout', async (req, res, next) => {
if (!req.session.cart) {
return res.redirect('/pos/');
}
var saleList = Sale.find().sort({ _id: -1 }).limit(1); // removed (err, data)=>{} to simply view it is working tested already
var settings = await Setting.find({}); // removed try and catch to simply view it is working tested already
var ticketNumber;
ticketNumber = !saleList ? invNum.next('0000000') : invNum.next(saleList.ticket_number);
var sale = new Sale({
ticket_number:ticketNumber,
cart: req.session.cart,
created_at: new Date()
});
sale.save((err, product) => {
createReceipt(settings, req.session.cart, "receipts/"+ticketNumber+".pdf");
req.session.cart = null;
res.redirect('/pos/');
});
});
我收到此错误:
TypeError: invNum.next is not a function
问题出在invNum.next()上。
invNum.next()是一个Node.js模块,用于生成从npm顺序安装的发票编号。
例:
invNum.next('2017/08/ABC001')
// => 2017/08/ABC002
我已经尝试通过Promises或等待异步功能来尝试获取以前的stackoverflow帖子中的建议,以使此代码正常工作。希望您可以提供帮助或建议。谢谢。
最佳答案
发票编号模块的版本存在问题。在npm中显示为1.0.6,但在GitHub存储库中,package.json文件中包含1.0.5。
https://github.com/amindia/invoice-number。
我已经从Github存储库中获取了此模块的测试,并且工作正常。
请从给定的链接获取此模块的源代码,它将正常工作。
关于node.js - TypeError:invNum.next不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57471081/