Nodejs 应用简单的访问Mongodb 部署至Docker

1.本地简单的写能运行起来的一个nodejs (demo可写的更简单 一个post一个get即可)

schemas  user.js

var mongoose = require('mongoose')

var UserSchema = new mongoose.Schema({
name:{
unique:true,
type:String
},
password:{
type:String
},
//0 1 2 3 4
role:{
type:Number,
default:5
}
})
UserSchema.statics = {
fetch:function(cb){
return this.find({})
.exec(cb)
},
findById:function(id,cb){
return this.findOne({_id:id}).exec(cb)
}
}
module.exports = UserSchema

model user.js  

var mongoose = require('mongoose')

var UserSchema = require('../schemas/user')

var User = mongoose.model('User',UserSchema);

module.exports = User;

controller user.js

var User = require('../model/user')

exports.list = function(req,res){
User.fetch(function(err,users){
if(err) {console.log(err)}
res.send(users);
})
}
exports.save = function(req,res){
console.log(req.query.name);
var name = req.query.name || 'noname';
var password = 'abcdefg';
var user = new User({"name":name,"password":"123456"}) user.save(function(err){
if(err)
{
console.log('false');
res.send("fails");
return;
}
res.redirect('/');
})
}

app.js

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose') //var dbURL = 'mongodb://localhost:27017/imooc';
var dbURL = 'mongodb://mongodb/imooc';//mongodb这个名字是 在--link=aaa:bbb时的名字 即bbb
mongoose.connect(dbURL); var app = express(); app.listen(3000,function(){
console.log("server start. Listen port:3000");
}); require('./router/router')(app)

  router.js

var User = require('../app/controller/user')

var _ = require('underscore')

module.exports = function(app){
app.get('/',User.list)
app.get('/user',User.save);
}

  确保本地能够正常运行。

2.在app.js文件目录编写dockerfile

FROM node

COPY . /home/src

RUN cd /home/src; npm install

EXPOSE 3000

CMD ["node","/home/src/app.js"]

 

4.docker pull mongo

5.docker run -it --name mongodb mongo  进入终端

cd /home
mkdir db
mongod --dbpath='/home/db'
启动mongodb服务

6.docker build -t nodejsdemo ./ 

docker run -it -p 3000:3000 --name nodejsdemo --link=mongodb:mongodb modejsdemo

此时控制台可以看到 server start Listen port:3000

浏览器访问 192.168.99.100:3000

docker & nodejs & mongodb的更多相关文章

  1. react+react-router+react-redux+nodejs+mongodb项目

    一个实际项目(OA系统)中的部分功能.这个demo中引入了数据库,数据库使用了mongodb.安装mongodb才能运行完整的功能.要看完整的项目可以移步我的github 技术栈 React v15. ...

  2. Docker入门(二)在docker使用MongoDB

      本文将介绍如何在docker中使用MongoDB.   如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...

  3. Docker搭建MongoDB

    1. Docker搭建Mongodb 1.1 获取docker镜像 docker pull mongo 1.2 创建mongodb容器 docker run --name my-mongo -p 27 ...

  4. Linux平台安装MongoDB及使用Docker安装MongoDB

    一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...

  5. docker备份mongodb数据,导入导出

    场景:服务器要升级,之前在linux部署的mongodb没有用docker,升级后,mongodb要用docker部署,并将原有的mongodb数据导入到docker部署的mongodb中. 1.在l ...

  6. Docker 安装 mongoDB(五)

    Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...

  7. NodeJS,MongoDB,Vue,VSCode 集成学习

    NodeJS,MongoDB,Vue,VSCode 集成学习 开源项目地址:http://www.mangdot.com

  8. Docker01 centos系统安装、centos安装docker、docker安装mongoDB

    1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...

  9. Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客

    github:https://github.com/yehuimmd/myNodeBloy Nodejs+MongoDB+jQuery+Bootstrap-esj搭建的个人简易博客 主要功能 前台 : ...

随机推荐

  1. 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV

    中国电信总是把好好的一个路由猫阉割过后放在我的E家套餐里到处兜售(垄断市场也就罢了,还有非常多霸王条款,比方必须使用它们的手机,同一时候最多多少台电脑上网等等),曾经破解过另外一个中国电信的路由猫,非 ...

  2. QM课程03-采购中的质量管理

    QM模块被包含于采购过程的下列决策制定阶段:查询.供应商选择.采购订单.货物订单.收货.收到检查和收货数量的下达. 供应商下达 质量部门为一种被指定的物料下达一个供应商,它可以限制或限定下达的数量.如 ...

  3. Codeforces Round #277 (Div. 2) E. LIS of Sequence DP

    E. LIS of Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/486/pr ...

  4. spring-mvc整合freemarker并在ftl模版中显示服务端校验的错误信息,JSR303或者JSR349

    写法有多种,应该可以任意组合,最重要的是要引入spring.ftl 1.Bean里面的就不再多写了,来个简单就可以了 @NotEmpty(message="用户密码码不可为空") ...

  5. C#制作一个消息拦截器(intercept)1

    首先,我们先要制作一个自己定义Attribute,让他能够具有上下文读取功能,所以我们这个Attribute类要同一时候继承Attribute和IContextAttribute. 接口IContex ...

  6. orcle经常使用语句

    --1.创建暂时表空间 create temporary tablespace AUTOMONITORV5_temp tempfile 'D:\ORACLE\KARL\ORADATA\ORCL\AUT ...

  7. oc-03-OC访问OC源文件、C源文件中的函数

    show.h #ifndef __OCDay01__Show__ #define __OCDay01__Show__ #include <stdio.h> extern void test ...

  8. 使用mii-tool设置网卡速率

    转载:http://washion2008.blog.163.com/blog/static/144227201001711537158/ 在ubuntu中,mii-tool 是属于net-tools ...

  9. c盘太小

    C:\Users\Administrator\AppData\Roaming\Apple Computer

  10. 前端必会的js知识总结整理

    1.晨曦. 2.js是一门什么样的语言及特点?         js是一种基于对象和事件驱动的并具有相对安全性的客户端脚本语言.也是一种广泛用于web客户端开发的脚本语言,常用来给html网页添加动态 ...