enesser / vCards-js

Create vCards to import contacts into Outlook, iOS, Mac OS, and Android devices from your website or application.
MIT License
419 stars 154 forks source link

When using the saveToFile method, will it create the .vcf file? #13

Closed vacarsu closed 9 years ago

vacarsu commented 9 years ago

when trying to create a VCF I get the following error Exception while invoking method 'createVCF' Error: ENOENT, no such file or directory 'public/Alex-Lopez.vcf'

My question is will this create the VCF or does the VCF file have to already exist?

enesser commented 9 years ago

The VCF does not have to exist, but the directory does have to exist. If you believe the directory does exist and the path is relative to your location, try "./public/alex-lopez.vcf"

Let me know. It should work. Try logging out process.cwd() in Node if you're unsure of the current working directory. It might not be what you're expecting.

enesser commented 9 years ago

Also make sure the process has read/write permissions.

vacarsu commented 9 years ago

it seems any folder I try I get the same error, I'm using this inside of meteor so I guess things get a bit more tricky.

current working directory is, /vdexter/.meteor/local/build/programs/server

vacarsu commented 9 years ago

If I set it to save to /AlexLopez.vcf I get no errors, but I also have no clue where exactly it is getting saved.

Ah I found it, guess I have to ./../ my way through a large number of folders.

enesser commented 9 years ago

Oh, right. Meteor. I don't have Meteor right in front of me, and I don't remember the preferred way to get the project root. You could use the absolute path to the project, but I can understand not wanting to have to do that.

What does this return? process.env.PWD

"Meteor Magic™" might point that to the project root. I'll have to wait until later to test it myself, though.

vacarsu commented 9 years ago

I got it working, I just had to go back 5 folders, I'm okay with that for now. process.env.PWD logs

/Users/alex/Desktop/vdexter/vdexter
enesser commented 9 years ago

Cool. So you could do something like:

vCard.saveToFile(process.env.PWD + '/public/myCard.vcf');

vacarsu commented 9 years ago

Ah, yes of course! Thanks for your help.