I have created cli program with commander package but I faced an error. I try to run my program outside my program folder, it got an error like this on the terminal:
home/bimodwilaksono/.nvm/versions/node/v14.20.0/bin/getuser-cli: line 1: syntax error near unexpected token `"dotenv"'
/home/bimodwilaksono/.nvm/versions/node/v14.20.0/bin/getuser-cli: line 1: `require("dotenv").config();'
This is my source code:
require("dotenv").config();
const program = require("commander");
const mongoose = require("mongoose");
const db = mongoose.connect(process.env.DATABASE);
const userSchema = new mongoose.Schema({
email: String,
password: String,
googleId: String,
});
const User = new mongoose.model("User", userSchema);
const listUsers = () => {
User.find().then((Users) => {
console.log(Users);
console.log(`${Users.length} Users`);
mongoose.disconnect();
});
};
//Program
//List Command
program
.command("list")
.alias("l")
.description("List all users")
.action(() => listUsers());
program.parse(process.argv);
Apparently, when I run my program outside its folder it can't read environment variable. But if I don't use environment variable, my program is work. For example like this :
const db = mongoose.connect("ThisistheConnectionString");
What I have to do to run program which has environment variable to work?