npm init
npm install express --save
npm install mongoose --save

structure

mkdir website
cd website
npm init
npm install --save mongoose
npm install --save express

database.js

const mongoose = require('mongoose');

const DATABASE_CONECTION = 'mongodb://mongo/test';

var kittySchema = mongoose.Schema({
  name: String
});

Kitten = exports.Kitten = mongoose.model('Kitten', kittySchema);

exports.initializeMongo = function() {
  mongoose.connect(DATABASE_CONECTION);

  console.log('Trying to connect to ' + DATABASE_CONECTION);

  var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'connection error: We might not be as connected as I thought'));
  db.once('open', function() {
    console.log('We are connected you and I!');
    addRandomCat();
  });
}

var addRandomCat = function() {
  var silence = new Kitten({
    name: 'Silence' + Math.random()
  });

  silence.save(function (err, fluffy) {
    if (err) return console.error(err);
    console.log('There is a new random cat in the neighborhood');
  });
}

index.js

console.log("Oh Yeah!")
const express = require('express')
const database = require('./database')
const app = express()

database.initializeMongo();

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.get('/testFind', function (req, res) {
  database.Kitten.find(function (err, kittens) {
    if (err) res.status(500).send({ error: err });
    console.log(kittens);
    res.json(kittens);
  })
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

Dockerfile

FROM node:9.3.0-alpine

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
COPY package.json .

RUN npm install

# Bundle app source
COPY . .

EXPOSE 3000

CMD ["node", "index.js"]

docker-compose.yml

version: '3'
services:
  web:
    image: docker-node-express-mongoapp
    build: ./website
    command: node index.js
    ports:
      - "3000:3000"
    volumes:
      - ./web-site:/usr/src/app
      - /usr/src/app/node_modules
    depends_on:
      - "mongo"
  mongo:
    image: "mongo"
    ports:
      - "27017:27017"
  adminmongo:
    image: "mrvautin/adminmongo"

    ports:
      - "1234:1234"

docker compose up

docker-compose up

results matching ""

    No results matching ""