首页 > 代码库 > docker & nodejs & mongodb
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时的名字 即bbbmongoose.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 nodeCOPY . /home/srcRUN cd /home/src; npm installEXPOSE 3000CMD ["node","/home/src/app.js"]
4.docker pull mongo
5.docker run -it --name mongodb mongo /bin/bash 进入终端
cd /homemkdir dbmongod --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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。