docker & nodejs & mongodb Nodejs 应用简单的访问Mongodb 部署至Docker
发布日期:2021-08-17 00:52:16 浏览次数:43 分类:技术文章

本文共 2591 字,大约阅读时间需要 8 分钟。

docker & nodejs & mongodb

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

原文地址 (自己操作时遇到不能继续的情况,所以稍做了修改完善)

目录结构

.├── app.js├── controller├── Dockerfile├── model├── node_modules├── package.json├── router└── schemas

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

schemas/user.jsvar mongoose = require('mongoose') var UserSchema = new mongoose.Schema({    name:{        unique:true,        type:String    },    password:{        type:String    },    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.jsvar 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.jsvar 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/router.jsvar User = require('../controller/user') var _ = require('underscore') module.exports = function(app){    app.get('/',User.list)    app.get('/user',User.save);}

确保本地能够正常运行。

2.npm安装express mongoose underscore

$ npm install express mongoose underscore

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

FROM nodeRUN mkdir -p /home/srcCOPY . /home/srcRUN cd /home/src; npm install --registry=https://registry.npm.taobao.orgEXPOSE 3000CMD ["node", "/home/src/app.js"]

4.docker pull mongo

5.docker run -it --name mongodb mongo

进入终端

cd /homemkdir dbmongod --dbpath='/home/db'

启动mongodb服务

6.docker build -t nodejsdemo ./ 

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

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

浏览器访问 192.168.99.100:3000

转载于:https://www.cnblogs.com/musiq66/p/9146101.html

转载地址:https://blog.csdn.net/weixin_30825199/article/details/99204150 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何才能识别真正的程序员能力
下一篇:阿里云centos开启ipv6支持

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月11日 04时52分46秒