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 |
本文链接:
版权声明: 本博客所有文章除特别声明外,均采用 许可协议。转载请注明出处!