To install MongoDB, you should have Mac OS X 10.6 (Snow Leopard) or above. To find out which version of OS X you own, click the icon in the top left corner of your screen and select
About This Mac.
WARNING: do a Time Machine backup before carrying out any of the following steps!
The easiest way to install MongoDB on OS X is using HomeBrew. If you haven’t used HomeBrew before, simply execute the following command in a Terminal window:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
After HomeBrew is successfully installed, follow up with this command:
brew update && brew install mongodb
HomeBrew will automatically install all the dependencies for you.
Again, we’ll let HomeBrew do the heavy lifting:
brew install node
The npm executable is already included in the Node.js package.
Before continuing, let’s make sure Node.js modules can be found by others ( CAUTION: it’s best to copy and paste these commands, as you’d lose the original contents of your
.bashrc file if you typed
> in place of
echo 'export NODE_PATH="./node_modules:/usr/local/lib/node_modules"' >> ~/.bashrc && source ~/.bashrc
To check if the configuration is in effect, execute:
You should see
./node_modules:/usr/local/lib/node_modules printed out below your command.
If you use a different shell than Bash, simply replace
~/.bashrc with your shell configuration file.
npm install -g express yo grunt grunt-cli generator-angular-fullstack bower
Make a directory for your Back End Project projects. Assuming your desktop is your de facto workspace:
mkdir ~/Desktop/Back End Projects && cd ~/Desktop/Back End Projects
Now that all the preparations are in place, it’s time for the main event:
Answer the questions according to checklist items #13-23 of Challenge: Get Set for Back End Projects. Consult #24-27 if you run into errors. This will download ~350MB worth of files into your current directory.
Before going any further, we need to fix a known issue in some generated files:
echo "sed -i '' -e 's/_.merge/_.extend/' server/api/*/*.controller.js" > \ fix-exports-update.sh && chmod +x fix-exports-update.sh && \ ./fix-exports-update.sh
You need to run
./fix-exports-update.sh every time you generate a new API endpoint (until they fix this upstream, that is).
Tell Git not to track your database:
echo "data" >> .gitignore
Turn the directory in which your application is located into a Git repository by running the following commands:
git init && git add . && git commit -am 'initial commit'
To start MongoDB for the first time in your app’s directory, run the following commands in your terminal:
mkdir data && echo 'mongod --config /usr/local/etc/mongod.conf --dbpath=data --rest "$@" --httpinterface' > mongod.sh && chmod a+x mongod.sh && ./mongod.sh
From this point on you can simply start MongoDB by executing
./mongod.sh. A few things to note:
mongodto write messages to a log file instead of stdout. To view the log, run the following in a separate Terminal tab:
--nojournaloption. Journaling lets you recover the database in case of a
datadirectory over from an earlier project,
mongodwill fail to start. If that’s the case, just
rm -rf data && mkdir data && ./mongod.sh.
Open a new Terminal tab by pressing
⌘T, and run the following command:
Grunt should automatically open your new Angular site’s index page as soon as it finishes starting up.
Now you should be able to follow the rest of the Challenge instructions to push to GitHub and Heroku. Just ignore the part about SSH key (run-mean-stack-osx#33-36) and replace
~/workspace with your app directory’s path.
The above steps were tested under the following configuration: