veuillez me pardonner, je suis totalement nouveau chez Lambda et Node.
J'essaie de répliquer this git pour commander une pizza en utilisant un bouton AWS IoT.
Mon code actuel est:
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 la suivante:
J'ai compressé les fichiers, téléchargés sur Lambda et pointé l'en-tête sur "index.handler"
Qu'est-ce que je fais mal?
Modifier: l'erreur
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)
Dans mon cas, j'ai mentionné Handler
comme index.handler
mais mon nom de fichier racine est app.js
. Changer ceci en index.js
travaillé.
Assurez-vous également que le fichier Zip a votre index.js, node_modules and package.json
directement.
Devrait être:
Zip file --> index.js
package.json
node_modules
Ne pas
Zip file --> some_folder_name --> index.js
package.json
node_modules
C'était un problème d'autorisation pour moi, après avoir changé les autorisations pour le dossier 'node_modules' en 777, compressé et téléchargé, cela a fonctionné.
Ran dans ce problème aussi. Ce qui m'a résolu, c'est de réaliser que le chemin du fichier était trop long sur une machine Windows. Après avoir zippé, j'ai réalisé que le contenu de node_modules était vide. J'ai copié les fichiers pour les compresser vers un chemin de niveau supérieur, par exemple C:\User\et zippé les fichiers spécifiés. J'espère que cela t'aides!
Ce qui a fonctionné pour moi a été de compresser les fichiers suivants et de télécharger le Zip (après avoir fait l'installation de npm dans le dossier):
J'ai eu le même problème et l'ai résolu en suivant les étapes ci-dessous
nom de dossier cd
Zip -r foldername.Zip *
Dites dans le fichier Javascript a.js
var func = function(){
}
export.func = func ;
Dans index.js
var a = require('a.js')
exports.handler(event, context, callback){
a.func
}