91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs漸入佳境[21]-express+mondoDB應用部署到heroku

發布時間:2020-08-11 05:12:29 來源:網絡 閱讀:225 作者:jonson_jackson 欄目:開發技術

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協議 許可協議。轉載請注明出處!

nodejs漸入佳境[21]-express+mondoDB應用部署到heroku

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苏尼特左旗| 中江县| 尼木县| 射洪县| 常宁市| 安新县| 榆中县| 河北省| 乐平市| 伊宁市| 舞阳县| 永昌县| 双城市| 济阳县| 白朗县| 昌平区| 通化市| 英山县| 定结县| 尉犁县| 息烽县| 保靖县| 通州市| 英山县| 鸡西市| 皋兰县| 崇州市| 新密市| 漳平市| 无极县| 信宜市| 靖江市| 寻乌县| 乌恰县| 乌鲁木齐县| 天气| 兰溪市| 凤冈县| 诸暨市| 宁波市| 威远县|