我已经尝试过此代码:

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/

10-12 13:43