docker & nodejs & mongodb
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的更多相关文章
- react+react-router+react-redux+nodejs+mongodb项目
一个实际项目(OA系统)中的部分功能.这个demo中引入了数据库,数据库使用了mongodb.安装mongodb才能运行完整的功能.要看完整的项目可以移步我的github 技术栈 React v15. ...
- Docker入门(二)在docker使用MongoDB
本文将介绍如何在docker中使用MongoDB. 如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...
- Docker搭建MongoDB
1. Docker搭建Mongodb 1.1 获取docker镜像 docker pull mongo 1.2 创建mongodb容器 docker run --name my-mongo -p 27 ...
- Linux平台安装MongoDB及使用Docker安装MongoDB
一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...
- docker备份mongodb数据,导入导出
场景:服务器要升级,之前在linux部署的mongodb没有用docker,升级后,mongodb要用docker部署,并将原有的mongodb数据导入到docker部署的mongodb中. 1.在l ...
- Docker 安装 mongoDB(五)
Docker 安装 mongoDB 1.搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的) docker search mongo 2.拉取docker的mongo镜像 ...
- NodeJS,MongoDB,Vue,VSCode 集成学习
NodeJS,MongoDB,Vue,VSCode 集成学习 开源项目地址:http://www.mangdot.com
- Docker01 centos系统安装、centos安装docker、docker安装mongoDB
1 centos系统安装 本博文是基于 centos6.5 的,利用VMware 虚拟机搭建 centos6.5 系统 1.1 centos6.5资源获取 1.2 安装 1.2.1 新建虚拟机 1.2 ...
- Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客
github:https://github.com/yehuimmd/myNodeBloy Nodejs+MongoDB+jQuery+Bootstrap-esj搭建的个人简易博客 主要功能 前台 : ...
随机推荐
- centos环境配置
1. centos上安装开发环境 yum groupinstall "Development Tools" "Legacy Software Development&qu ...
- Html页中使用OCX控件
原文:http://blog.csdn.net/mouse8166/article/details/5515657 最近准备开发一个b/s架构的应用程序需要用到activeX控件,web服务器尚未进入 ...
- 浅谈Java对象回收的三种方式
半夜睡不着,加上最近在看Java虚拟机,写点给新手和自己看的东西. 第一类:生命周期中止 void scope(){ Test t = new Test(); } 第二类:对象无引用 (一).对象的应 ...
- 第1章 游戏之乐——NIM(3)两堆石头的游戏
NIM(3)两堆石头的游戏 1. 问题描述 假设有两堆石头,有两个玩家会根据如下的规则轮流取石头:每人每次可以从两堆石头中各取出数量相等的石头,或者仅从一堆石头中取出任意数量的石头:最后把剩下的石头一 ...
- 微信朋友圈分享页面(JS-SDK 1.0)
微信更新sdk后大量分享朋友圈代码失效,标题 缩略图 描述无法自定义 新版SDK分享文章步骤 1.绑定域名 (方法参考 http://mp.weixin.qq.com/wiki/7/aaa137b55 ...
- linux下使用find xargs grep查找文件及文件内容
1,在某个路径下查文件. 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录. find /etc -name “*” ...
- 《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(八)
将插入.更新和删除操作映射到存储过程 问题 您想在存储过程中映射插入.更新和删除操作. 解决方案 下图所示的运动员Athlete实体模型.底层数据库有一张运动员Athlete表.您想使用存储过程进行实 ...
- 前端必会的js知识总结整理
1.晨曦. 2.js是一门什么样的语言及特点? js是一种基于对象和事件驱动的并具有相对安全性的客户端脚本语言.也是一种广泛用于web客户端开发的脚本语言,常用来给html网页添加动态 ...
- JavaScript实现复选框的全选,反选,不选
<script> window.onload=function(){ var CheckAll=document.getElementById('All'); var UnCheck=do ...
- android 编写动画
1.在编写动画的时候需要新建一个xml 新建的步骤是选中res单击右键选择Android resource file 然后弹出一个框 ,然后再Resource Type 里面选择Animation 然 ...