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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.