9

I'm new to programming in javascript. I am given a task to write a .js file that will run some input.json. I'm supposed to run it as such:

./name.js input.json

How can I incorporate node.js in this process and how do I get terminal to accept that script?

Thanks!

Edit: I solved my problem! I can't answer my own problem yet because of rules, anyway...

#!/usr/bin/env node
var fs = require('fs');

args = []
process.argv.forEach(function (val, index, array) 
{
    args.push(val); 
});

var file = fs.readFileSync(args[2], "UTF-8", function (err, data) 
{
if (err) throw err;
});

This is essentially what I did. I spent some time searching and combining things I found from different posts and got this to work - maybe it's not the best way, but it works. This stores my .json file into the file variable, which then I passed in as a function argument elsewhere. Thanks everyone.

3

3 Answers 3

11
   #!/usr/bin/env node
   var commandLineArguments = process.argv.slice(2);
   ...
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for the suggestion! I ended up doing something similar. When I did console.log(commandLineArguments); it gave me [ 'input.json' ], which isn't exactly what I wanted...
2

Maybe too obvious, but the easiest way is:

node ./name.js input.json

1 Comment

Yeah, this is what I did at first, but I realized if I put in what Cthulhu said above, I could do it without the node part!
0

Maybe a bit late. But your post inspired me. I didn't knew that you can use js for an application. I always did it with shell script. The solution with the she-bang pointing to nodejs is awesome.

Thanks for the suggestion! I ended up doing something similar. When I did console.log(commandLineArguments); it gave me [ 'input.json' ], which isn't exactly what I wanted.

Now I can answer your comment. It gives you [ 'input.json' ] right ? the [] tells you that it's an array and 'input.json' is the only item. So you have to select the first element of that array.

console.log(commandLineArguments[0]);

I hope I could help you even when it's too late.

Thank you :D

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.