AWS Lambda: Impossible d'importer le module
s'il vous plaît pardonnez-moi, je suis totalement nouveau à Lambda et le Nœud.
Je suis en train de répliquer cette git pour commander une pizza à l'aide d'AWS IoT bouton.
Mon code actuel est:
JS:
var pizzapi = require('dominos');
var myStore = new pizzapi.Store(
{
ID: 'Example'
}
);
var myAddress = new pizzapi.Address(
{
Street: 'Example',
City: 'Example',
Region: 'Example',
PostalCode: 'Example'
}
);
var myCustomer = new pizzapi.Customer(
{
firstName: 'Example',
lastName: 'Example',
address: myAddress,
phone: 'Example',
email: '[email protected]'
}
);
var order = new pizzapi.Order(
{
customer: myCustomer,
storeID: myStore.ID
}
);
var cardNumber='Example';
var cardInfo = new order.PaymentObject();
cardInfo.Amount = order.Amounts.Customer;
cardInfo.Number = cardNumber;
cardInfo.CardType = order.validateCC(cardNumber);
cardInfo.Expiration = 'Example';
cardInfo.SecurityCode = 'Example';
cardInfo.PostalCode = 'Example';
order.Payments.push(cardInfo);
function orderDominos(event, context) {
var clickType = event.clickType;
switch(clickType.toLowerCase()) {
case "single": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
case "double": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
case "long": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
}
order.validate(
function(result) {
console.log("Order is Validated");
}
);
order.price(
function(result) {
console.log("Order is Priced");
}
);
order.place(
function(result) {
console.log("Price is", result.result.Order.Amounts, "\nEstimated Wait Time",result.result.Order.EstimatedWaitMinutes, "minutes");
console.log("Order placed!");
context.succeed(event);
}
);
}
exports.handler = orderDominos;
La structure du fichier est:
- orderDominos.js
- node_modules/dominos
J'ai compressé les fichiers téléchargés pour Lambda, et a souligné l'en-tête de "l'index.handler"
Ce que je fais mal?
Edit: L'erreur
JS:
Unable to import module 'orderDominos': Error
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/task/node_modules/dominos/src/http-json.js:1:74)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
- Merci de ne pas poster ce genre de questions sans y inclure le message d'erreur réelle.
- Désolé il l'a édité dans
Vous devez vous connecter pour publier un commentaire.
Dans mon cas, je l'ai mentionné
Handler
commeindex.handler
mais mon nom de fichier racine estapp.js
. La modification de ce àindex.js
travaillé.Aussi assurez-vous que le fichier zip a votre
index.js, node_modules and package.json
directement.Devrait être:
Pas
C'était un problème de permission pour moi, après j'ai changé les permissions pour le "node_modules" dossier en 777, zippé et l'a envoyé, il a travaillé.
Rencontré ce type de problème. Ce que résolu pour moi a été de réaliser que le chemin d'accès du fichier est trop long sur une machine Windows. Après la compression, j'ai réalisé que le contenu de node_modules était vide. J'ai copié les fichiers de compression à un niveau plus élevé de chemin d'accès par exemple C:\User\ et compressé les fichiers spécifiés. Espérons que cette aide!
J'ai eu le même problème et réussi à le résoudre en suivant les étapes ci-dessous
utiliser la borne à zip
cd foldername
zip-r foldername.zip *
Dire dans un fichier Javascript.js
Dans index.js
Ce qui a fonctionné pour moi a été de compresser les fichiers ci-dessous et télécharger le zip(après avoir fait npm install dans le dossier):
Installer
zip Ce et de télécharger sur Lambda