2017-09-12 1 views
0

Dans mon application NodeJS (meteorJS) Je dois utiliser un chemin absolut pour la création d'un fichier via fs.createWriteStream:NodeJS: Comment obtenir le chemin absolut - comme « chemin » ne fonctionne pas

const absolutePath = '/Users/Anybody/Documents/Project/imports/temp' 
if (Meteor.isServer) { 
    const result = new Promise(function (resolve, reject) { 
    const gfs = Grid(
     MongoInternals.defaultRemoteCollectionDriver().mongo.db, 
     MongoInternals.NpmModule 
    ) 
    const readerStream = gfs.createReadStream({ _id: id }) 
    const writerStream = fs.createWriteStream(absolutePath + 'temp.mp4') 
    // ... 
    }) 
} 

Voici comment la le code ressemble au développement, ce que je fais sur macOS. La version de production de l'application est déployée sur un serveur ubuntu. Ainsi, le chemin absolu est différent.

J'ai essayé d'utiliser path:

const path = require('path') 
const absolutePath = path.resolve('/imports/temp') 

Mais cela me donne seulement /imports/temp (sur Mac OS)

+0

double possible de [Déterminer la racine du projet à partir d'une application en cours d'exécution Node.js] (https://stackoverflow.com/questions/10265798/determine-project-root-from-a-running-node-js- application) –

Répondre

0

Vous pouvez utiliser process.env.PWD pour obtenir votre chemin de base de votre projet. Ensuite, vous pouvez ajouter votre chemin de segment de dossier restant.

var base = process.env.PWD; 
const absolutePath = base + '/imports/temp';