我已经创建了一个非常基本的NPM包,其中只有两个文件。
index.js:
module.exports = {
errors: {
HttpError: require('./src/errors').HttpError,
test: 'value'
}
}
src/errors.js:
class HttpError extends Error {
constructor (message, code) {
super(message)
this.statusCode = code
if (Error.captureStackTrace) {
Error.captureStackTrace(this, HttpError)
}
}
}
exports.HttpError = HttpError
当我安装这个包时,我可以使用我的error类而不会出现任何问题。但是,当我使用Serverless创建部署包并尝试将代码作为AWS Lambda的一部分运行时,lambda似乎无法解析HttpError类。
在AWS上运行的lambda函数中,当我需要将包作为const并注销时,日志如下所示:
{"errors":{"test":"value"}}
而在本地,它看起来像:
{ errors:
{ HttpError: [Function: HttpError],
test: 'value' } }
我已经从AWS下载了部署包,并且可以确认它看起来与本地版本完全相同。我在lambda文档中找不到任何暗示我不能使用require for javascript模块的东西。我做错了什么?
转载请注明出处:http://www.jxbyjx.net/article/20230428/1017162.html