nodejs module - how to get a text file located in same module directory

47 views
Skip to first unread message

MC

unread,
Jun 18, 2014, 2:48:51 PM6/18/14
to nod...@googlegroups.com
Hello,
I'd like to load a file (as string content) located in the same directory as the module:
module/test.txt
module/index.js

index.js content:
var fs = require('fs');

function load(){
fs.readFile('./test.txt', 'utf8', function(err, data) {
//this is not working, probably because fs is looking in app working directory
}
}
exports.load=load;

Is there a surefire way to get the contents of test.txt? I tried require('test.txt') but that throws an error since test.txt does not contain javascript.
I would appreciate any help in this matter.
Thanks,

M

MC

unread,
Jun 18, 2014, 6:32:55 PM6/18/14
to nod...@googlegroups.com
The solution is to include __dirname in file path, like this:
fs.readFile(__dirname + '/test.txt', 'utf8', function(err, data) {
//use data
});
Thanks,

M

Darren

unread,
Jun 18, 2014, 7:32:38 PM6/18/14
to nod...@googlegroups.com
MC, you can use __directory within a module to get it's directory, ie. console.log(__dirname + __filename);
...hope that helps.

Pavel Strashkin

unread,
Jun 18, 2014, 9:03:24 PM6/18/14
to nod...@googlegroups.com
Hey, the following code should help:

var path = require('path');
var pathToFile = path.join(__dirname, 'test.txt'); // __dirname is a special per-module variable that contains path to directory where current module is located


--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/3946903e-2fd4-4637-8087-7e84ddfeba2e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages