所以,我有无服务器项目,我想运行如下功能
'use strict';
const report= require('./report');
module.exports.startAdMeta = (event, context) => {
report.init();
return "success";
}
我在handler.js中添加“report”文件夹作为模块时遇到问题。 如何在lambda中添加模块所有文件?
响应:{“errorMessage”:“找不到模块'报告'”,“errorType”:“错误”,“stackTrace”:[“Function.Module._load(module.js:417:25)”,“ Module.require(module.js:497:17)“,”require(internal / module.js:20:19)“,”Object。(/ var / task / handler.js:2:35)“,”模块._compile(module.js:570:32)“,”Object.Module._extensions..js(module.js:579:10)“,”Module.load(module.js:487:32)“,”tryModuleLoad (module.js:446:12)“,”Function.Module._load(module.js:438:3)“]}
答案 0 :(得分:1)
我通过三个步骤来做到这一点。
1)将以下行添加到package.json
"dependencies": {
"report": "file:./report"
}
2)安装为npm包
npm install
3)将其视为正常的node_modules。
const report= require('report');
答案 1 :(得分:1)
谢谢,问题节点js版本升级的解决方案。升级到最新版本并解决了。
答案 2 :(得分:0)
您可以使用此代码段代码将所有文件导入为模块:
var allModuls = new Map();
fs.readdir("./commands", (err, files) => {
files.forEach(file => { // for each file in the directory "commands"
if (file == 'main.js'){return;} //my main.js is inside the folder so I excluded it.
var modulName = file.split(".")[0];
var importedModul = require("./" + file );
allModuls.set(modulName, importedModul );
});
})
所有模块都可以通过以下方式访问:AllModuls.get([modulName])