node.js - TypeError:invNum.next 不是函数
问题描述
我试过这段代码:
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 或 await async 函数尝试了以前的 stackoverflow 帖子中的建议,以使此代码正常工作。希望您可以提供帮助或提出建议。谢谢你。
解决方案
发票编号模块版本有问题。在 npm 中它显示为 1.0.6,但在 GitHub 存储库中,它在 package.json 文件中有 1.0.5。 https://github.com/amindia/invoice-number。
我已经从 Github 存储库中测试了这个模块,它工作正常。请从给定的链接中获取此模块的源代码,它将正常工作。
推荐阅读
- javascript - 我有 google drive pdf 的共享链接,我必须使用 angular7 下载该 pdf。请告诉我该怎么做
- material-ui - 如何为material-ui-dropzone的容器设置样式
- python-3.x - 如何在 python 中将包含超出范围 utf-8 或 16 的字符的 unicode 字符串转换为二进制或十六进制?
- django - 如何修复Django中的自动登录?
- mongodb - 如何在 MongoDB Atlas 中获取“完整的数据库名称”?
- ionic-framework - 修复启动图像 ionic v1 后无法在 iphone x 中查看电池状态
- ubuntu - 从外部 IP 地址访问主机
- javascript - 访问 iFrame 中的数据属性?
- javascript - 从javascript中的文本文件中读取特定单词
- protractor - 如何使用量角器使鼠标悬停在一段文本上