node[21]-express+mondoDB应用部署到heroku
2018-11-18 nodejs nodejs 前端 17 评论 字数统计: 394(字) 阅读时长: 2(分)
express+mongoDB部署到heroku
注意process.env.PORT 与 process.env.MONGODB_URI
源代码postman.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
var mongoose = require('mongoose'); var express = require('express'); var bodyParser = require('body-parser'); const {ObjectID} = require('mongodb'); //app var app = express(); const port = process.env.PORT || 3000; //express middleware Jonson对象与字符串转换。 app.use(bodyParser.json()); // mongoose.Promise = global.Promise; //连接mogodb mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/TodoApp'); //模版 var Todo = mongoose.model('Todo',{ text:{ type:String, //类型 required:true, //必须要有 minlength:1, //最小长度 trim:true //去除空格 }, completed:{ type:Boolean, default:false //默认值 }, completedAt:{ type:Number, default:null } }); //express route app.post('/todos',(req,res)=>{ // console.log(req.body); //建立对象document var todo = new Todo({ text:req.body.text }); //保存 todo.save().then((doc)=>{ res.send(doc); },(e)=>{ res.status(400).send(e); }); }) //获取所有属性 app.get('/todos', (req, res) => { Todo.find().then((todos) => { res.send({todos}); }, (e) => { res.status(400).send(e); }) }); //查询id app.get('/todos/:id', (req, res) => { var id = req.params.id; if (!ObjectID.isValid(id)) { return res.status(404).send(); } Todo.findById(id).then((todo) => { if (!todo) { return res.status(404).send(); } res.send({todo}); }).catch((e) => { res.status(400).send(); }); }); //监听 app.listen(port,()=>{ console.log(`Start on port ${port}`); }); module.exports = { app, Todo } |
package.json
package.json配置文件中指定start脚本与node的版本
1 2 3 4 5 6 7 8 |
"scripts": { "test": "mocha", "test-watch":"nodemon --exec 'npm test'", "start": "node postman.js" }, "engines":{ "node": "10.13.0" }, |
heroku部署
1 2 3 4 5 6 |
heroku create heroku addons:create mongolab:sandbox //添加mongodb到 heroku heroku config //查看 git add . git commit -m "commit" git push heroxu master |
测试
1 2 |
访问 domain/todos 配合postman增加document |
- 本文链接: https://dreamerjonson.com/2018/11/18/node-21-deploy-heroku/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
郑建勋(jonson)区块链工程师 & Web工程师
灾难总是接踵而至,这正是世间的常理。你以为只要哭诉一下,就会有谁来救你吗?如果失败了,就只能说明我不过是如此程度的男人。