Je travaille sur trois fichiers pour le moment qui sont index.js, index.main.js et app.js. J'utilise la demande-contexte pour saisir une variable d'index.main.js et passez-la à index.js.
Dans App.js (un fichier j'ai créé dans mon dossier serveur) J'ai le code suivant
//full code in app.js
const contextService = require("request-context");
const app = express();
app.use(contextService.middleware("request"));
J'ai essayé d'exécuter ces commandes suivantes
npm install --save TypeScript @types/node @types/react @types/react-dom @types/jest
npm install -D @types/request-context
et aussi essayé d'utiliser avant l'importation
// @ts-ignore
En vain.
Quand je vérifie mon application.js je remarque trois points sur le mot "exiger" qui montre:
Impossible de trouver un fichier de déclaration pour le module 'demande-contexte'. '/Home/ServertTest/desktop/folder/Folder1/src/component_nodejs/server/node_modules/Request-Context/lib/index.js' a implicitement un type "n'importe quel". Essayer npm install @types/request-context
S'il existe ou ajoutez une nouvelle déclaration (.D.TS) contenant declare module 'request-context';
ts (7016)
Dans index.main.js j'ai ce qui suit
async function listFilesInDepth()
{
const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'probizmy';
const [files] = await storage.bucket(bucketName).getFiles();
const contextService = require("request-context");
console.log('List Of Files Available:');
files.forEach(file =>
{
targetFiles = file.name;
console.log(`-----`+file.name);
});
contextService.set("request:targetFileKey", targetFiles);
return targetFiles;
}
et dans index.js j'ai le code suivant
const contextService = require("request-context");
const targetFiles = contextService.get("request:targetFileKey");
console.log(targetFiles) //output shows undefined
Je soupçonne que l'erreur de contexte de demande est la raison pour laquelle je suis indéfini comme la sortie. Mon résultat attendu est que la valeur des champs TargetFiles soit sur le journal de la console.
Dans l'espoir d'avoir une idée de cela. Toute aide serait grandement appréciée! Merci :)
Édité:
Comme demandé, j'ai inclus package.json
{
"name": "server",
"version": "0.1.81",
"description": "Server NodeJS For Internel Process",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"@google-cloud/storage": "^2.4.2",
"@google-cloud/vision": "^0.25.0",
"@types/jest": "^24.0.15",
"@types/node": "^12.0.12",
"@types/react": "^16.8.23",
"@types/react-dom": "^16.8.4",
"alphabet-generator": "^1.0.1",
"body-parser": "^1.18.3",
"cheerio": "^1.0.0-rc.2",
"cors": "^2.8.5",
"express": "^4.16.4",
"format": "^0.2.2",
"grpc": "^1.19.0",
"multer": "^1.4.1",
"natural": "^0.6.3",
"path": "^0.12.7",
"request": "^2.88.0",
"request-context": "^2.0.0",
"require-all": "^3.0.0",
"require-dir": "^1.2.0",
"string-similarity": "^3.0.0",
"TypeScript": "^3.5.2"
},
"devDependencies": {
"babel-plugin-root-import": "^6.2.0"
}
}
J'ai déjà eu cette question et il y a un problème avec la façon dont vous déclarez vos typages. Il existe quelques façons de résoudre ce problème, je comprendrai ci-dessous avec plus de liens pour des informations avec un lien avec la documentation de déclaration dossée et plusieurs autres ressources StackoverFlow. Si vous incluez votre package.json, cela peut aider à déterminer ce que vous devez toujours faire. Vous devez probablement ajouter dans un dossier/fichier de types avec les lignes de code suivantes
"typeRoots": [
"./node_modules/@types",
"./types"
] /* List of folders to include type definitions from. */
Puis créer un deuxième fichier du formulaire * .D.TS pour répertorier vos modules nécessaires erreurs. Alors quelque chose comme
declare module 'request-context';
Le problème pourrait également figurer dans votre fichier package.js. Vous devrez peut-être déclarer où sont les dactosions comme si
// package.json
{
"typings": "dist/src/*.d.ts"
}
Différentes ressources
https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
Peut-être que c'est parce que le listFilesInDepth
est asynchronous
et vous devez gérer la promesse ou utiliser ASYNC attendre sur cette méthode.
La méthode ListFilesIndepth a-t-elle appelé avant de faire le contexte.get?