1. 程式人生 > >nodejs漸入佳境[32]-mongodb+express+auth middleware部署到h

nodejs漸入佳境[32]-mongodb+express+auth middleware部署到h

package.json

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
{
 "name": "node-todo-api",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
   "start": "node server/server.js",
   "test": "export NODE_ENV=test || SET NODE_ENV=test && mocha server/**/*.test.js",

   "test-watch": "nodemon --exec 'npm test'"
 },
 "engines": {
   "node": "6.2.2"
 },
 "author": "",
 "license": "ISC",
 "dependencies": {
   "bcryptjs": "^2.3.0",
   "body-parser": "^1.15.2",
   "crypto-js": "^3.1.6",
   "express": "^4.14.0",

   "jsonwebtoken": "^7.1.9",
   "lodash": "^4.15.0",
   "mongodb": "^2.2.5",
   "mongoose": "^4.5.9",
   "validator": "^5.6.0"
 },
 "devDependencies": {
   "expect": "^1.20.2",
   "mocha": "^3.0.2",
   "nodemon": "^1.10.2",

   "supertest": "^2.0.0"
 }
}

git

1
2
3
4
.gitignore裡面的檔案不會提交
git init
git add .
git commit -m "fitst commit"

heroku

安裝heroku-cli 略…

1
2
3
4
heroku login  // 登陸賬號密碼
heroku create //建立分支
git push heroku master //提交到heroku管理的遠端分支
hexoru open   //開啟網址 得到:https://mighty-plateau-79112.herokuapp.com

studio 3T 連線mongoDB

heruku config

1
2
3
jacksondeMacBook-Pro:compaign jackson$ heroku config
=== mighty-plateau-79112 Config Vars
MONGODB_URI: mongodb://heroku_10kx7394:[email protected]:11694/heroku_10kx7394

新增引數,連線遠端mongoDB資料庫

1
2
3
4
5
server: ds211694.mlab.com
port: 11694
authentication DB: heroku_10kx7394
Username: heroku_10kx7394
password: ij2q2p51lgsh0grsp2dq56mgu2

測試

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
1、開啟mongoDB > ./mongod -dbpath /Users/jackson/Downloads/mongodb-data
2、執行 >node postman.js
3、開啟postman 選擇post 輸入 >https://mighty-plateau-79112.herokuapp.com/users  儲存user
Body中填入:
{
"email": "[email protected]",
"password" : "123abc!"
}
返回:
{
   "_id": "5c00a66978dd038d39dc4b89",
   "email": "[email protected]"
}

header:
x-auth →eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1YmZlNzE2NTkxZTc4YzZhNGFkOGMxNjQiLCJhY2Nlc3MiOiJhdXRoIiwiaWF0IjoxNTQzNDAxODI5fQ.wOKNzkls_w_jA5YVkCo0r9gFZ4-KtD6GarRiCDpAPr8

4、 選擇patch 輸入 >https://mighty-plateau-79112.herokuapp.com/todos/5c00a66978dd038d39dc4b89  
準備修改


Body中填入:
{
"text": "[email protected]",
}

header附帶返回:
x-auth →eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1YmZlNzE2NTkxZTc4YzZhNGFkOGMxNjQiLCJhY2Nlc3MiOiJhdXRoIiwiaWF0IjoxNTQzNDAxODI5fQ.wOKNzkls_w_jA5YVkCo0r9gFZ4-KtD6GarRiCDpAPr8

返回:
{
   "completed": false,
   "completedAt": null,
   "_id": "5c00a66978dd038d39dc4b89",
   "text": "[email protected]",
   "_creator": "5c00a58c78dd038d39dc4b87",
   "__v": 0
}

##原始碼

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
var mongoose = require('mongoose');
var express = require('express');
var bodyParser = require('body-parser');
const {ObjectID} = require('mongodb');
var _ = require('lodash');

const validator = require('validator');


相關推薦

nodejs漸入佳境[32]-mongodb+express+auth middleware部署h

package.json 123456789101112131415161718192021222324252627282930313233 {  "name": "node-todo-api",  "version": "1.0.0",  

nodejs漸入佳境[28]-mongodb+express+middleware驗證使用者登陸資訊

登陸驗證 使用者使用郵箱和密碼登陸,與mongodb資料庫查詢 驗證使用者是否有效首先使用者存在,並且密碼匹配。 1234567891011121314151617181920 UserSchema.statics.findByCredentials = functio

nodejs漸入佳境[31]-mongodb+express+middleware繫結使用者許可權2

繼續繫結使用者許可權,要執行操作必須要有token 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616

nodejs漸入佳境[30]-mongodb+express+middleware繫結使用者許可權

修改todos模型 增加_creator,將使用者繫結起來 123456789101112131415161718192021 //模版var Todo = mongoose.model('Todo',{    text:{    

nodejs漸入佳境[29]-mongodb+express+middleware刪除使用者許可權

刪除使用者的token 12345678910 UserSchema.methods.removeToken = function (token) {  var user = this;  return user.update({   &nb

nodejs漸入佳境[16]-node express專案部署到heroku

原始檔 views/partials/footer.hbs: 123 <Header>    <footer>{{pageTitle}}</footer><Header> views

nodejs漸入佳境[18]-mongodb-node增刪查改

1 > npm install --save mongodb 12345678910111213141516171819202122232425 //mongodb 3以上寫法const MongoClient =

nodejs漸入佳境[17]-mongodb資料庫入門

下載mongodb https://www.mongodb.com mongod 解壓,進入bin目錄 12 //-dbpath代表資料放置在哪裡./mongod -dbpath /Users/jackson/Downloads/mongodb-data

nodejs漸入佳境[27]-express+mongodb+middleware實現密碼雜湊

儲存密碼前對密碼進行hash 123456789101112131415 UserSchema.pre('save', function (next) {  var user = this;  if (user.isModified('password

nodejs漸入佳境[15]-express框架

最簡單的伺服器 12345678910111213141516171819202122 const express = require('express');var app = express();//返回html格式app.get('/',(req,res)=>{

Nodejs腳手架搭建基於express的應用

gen str 記錄 orm sta epo port XP strong 原文鏈接:https://www.cnblogs.com/FE-yanyi1993/p/6413042.html 這篇寫的非常詳細,此處只做記錄。 1.安裝生成器 $ npm install

MongoDB分片群集的部署(用心描述,詳細易懂)!!

tomat prim 提高自己 ati 客戶端 sys 存儲 stat 配置 概念: MongoDB分片是使用多個服務器存儲數據的方法,以支持巨大的數據存儲和對數據進行存儲 優勢: 1、減少了每個分片需啊喲處理的請求數,群集可以提高自己的存儲容量和吞吐量 2、減少了每個分片

MongoDB復制集部署和基本管理

parent rom 通過 日誌 serve ati 方便 nec ember MongoDB復制集部署和基本管理 MongoDB復制集概述 復制集(Replica Sets)是額外的數據副本,是跨多個服務器同步數據的過程,復制集提供了冗余並增加了數據的可用性,通過復制集可

[轉] Nodejs 進階:Express 常用中間件 body-parser 實現解析

tree define pan iconv 不同 erro unzip body message 寫在前面 body-parser是非常常用的一個express中間件,作用是對post請求的請求體進行解析。使用非常簡單,以下兩行代碼已經覆蓋了大部分的使用場景。 app.

【實戰】MongoDB 分片原理概述 + 部署 MongoDB 分片群集 +【源碼包】

balancer test 概述 b- 使用 說明 中一 瓶頸 標記 目錄: 1· MongoDB 分片概述2· 部署 MongoDB 分片群集3· MongoDB 分片管理4· 推薦 MongoDB 、MySQL 基礎文章5· 文章總結 MongoDB 分片概述 1)什

nodejs(十三)express.Router()路由

Express專門提供了路由功能用來封裝請求 建立一個路由,express.Router() var express = require('express') // 1. 建立一個路由容器 var router = express.Router() router

nodejs漸入佳境[4]-第三方包

匯入第三方包 nodejs 有豐富的第三方模組匯入,例如要匯入lodash包,在專案路徑下: 1 > npm install --save lodash app.js: 12345678910 console.

nodejs漸入佳境[3]-require匯入模組

require 匯入其他檔案 require可以執行其他檔案的內容。 新建檔案: nodes.js: 1 console.log('start nodes.js'); app.js: 1234567891011121314

nodejs漸入佳境[2]-Helloworld入門

nodejs helloworld 新建檔案app.js: 12 //列印字串console.log('Start app.'); 開啟控制檯,在當前目錄下輸入: 1 > node app.js

nodejs漸入佳境[10]-案例-使用者輸入+json增刪查改

對於之前的程式碼進行封裝 原始檔案app.js 對於返回節點進行判斷,如果新增了節點,就列印新增節點。 12345678910111213141516171819202122232425262728 //列印字串const yargs = require('yargs