Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
M
mobile wireless
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
KANTAPONG SONG-NGAM
mobile wireless
Commits
b5b120bb
Commit
b5b120bb
authored
Oct 28, 2018
by
KANTAPONG SONG-NGAM
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
homework
parent
d06a6726
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
487 additions
and
52 deletions
+487
-52
package-lock.json
mobile/package-lock.json
+438
-3
package.json
mobile/package.json
+2
-1
Things.js
mobile/week01/Things.js
+0
-1
Users.js
mobile/week01/Users.js
+0
-0
testmongoose.js
mobile/week01/testmongoose.js
+0
-0
config.js
mobile/week02/config.js
+0
-0
server.js
mobile/week02/server.js
+47
-47
user.js
mobile/week02/user.js
+0
-0
No files found.
mobile/package-lock.json
View file @
b5b120bb
...
@@ -34,6 +34,436 @@
...
@@ -34,6 +34,436 @@
"safe-buffer"
:
"5.1.2"
"safe-buffer"
:
"5.1.2"
}
}
},
},
"bcrypt"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.2.tgz"
,
"integrity"
:
"sha512-kE1IaaRchCgdrmzQX/eBQKcsuL4jRHZ+O11sMvEUrI/HgFTQYAGvxlj9z7kb3zfFuwljQ5y8/NrbnXtgx5oJLg=="
,
"requires"
:
{
"nan"
:
"2.11.1"
,
"node-pre-gyp"
:
"0.11.0"
},
"dependencies"
:
{
"abbrev"
:
{
"version"
:
"1.1.1"
,
"bundled"
:
true
},
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"bundled"
:
true
},
"aproba"
:
{
"version"
:
"1.2.0"
,
"bundled"
:
true
},
"are-we-there-yet"
:
{
"version"
:
"1.1.5"
,
"bundled"
:
true
,
"requires"
:
{
"delegates"
:
"1.0.0"
,
"readable-stream"
:
"2.3.5"
}
},
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
},
"brace-expansion"
:
{
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"requires"
:
{
"balanced-match"
:
"1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"chownr"
:
{
"version"
:
"1.1.1"
,
"bundled"
:
true
},
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"bundled"
:
true
},
"console-control-strings"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
},
"core-util-is"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
},
"debug"
:
{
"version"
:
"2.6.9"
,
"bundled"
:
true
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"deep-extend"
:
{
"version"
:
"0.6.0"
,
"bundled"
:
true
},
"delegates"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
},
"detect-libc"
:
{
"version"
:
"1.0.3"
,
"bundled"
:
true
},
"fs-minipass"
:
{
"version"
:
"1.2.5"
,
"bundled"
:
true
,
"requires"
:
{
"minipass"
:
"2.3.4"
}
},
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
},
"gauge"
:
{
"version"
:
"2.7.4"
,
"bundled"
:
true
,
"requires"
:
{
"aproba"
:
"1.2.0"
,
"console-control-strings"
:
"1.1.0"
,
"has-unicode"
:
"2.0.1"
,
"object-assign"
:
"4.1.1"
,
"signal-exit"
:
"3.0.2"
,
"string-width"
:
"1.0.2"
,
"strip-ansi"
:
"3.0.1"
,
"wide-align"
:
"1.1.3"
}
},
"glob"
:
{
"version"
:
"7.1.2"
,
"bundled"
:
true
,
"requires"
:
{
"fs.realpath"
:
"1.0.0"
,
"inflight"
:
"1.0.6"
,
"inherits"
:
"2.0.3"
,
"minimatch"
:
"3.0.4"
,
"once"
:
"1.4.0"
,
"path-is-absolute"
:
"1.0.1"
}
},
"has-unicode"
:
{
"version"
:
"2.0.1"
,
"bundled"
:
true
},
"iconv-lite"
:
{
"version"
:
"0.4.24"
,
"bundled"
:
true
,
"requires"
:
{
"safer-buffer"
:
"2.1.2"
}
},
"ignore-walk"
:
{
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"requires"
:
{
"minimatch"
:
"3.0.4"
}
},
"inflight"
:
{
"version"
:
"1.0.6"
,
"bundled"
:
true
,
"requires"
:
{
"once"
:
"1.4.0"
,
"wrappy"
:
"1.0.2"
}
},
"inherits"
:
{
"version"
:
"2.0.3"
,
"bundled"
:
true
},
"ini"
:
{
"version"
:
"1.3.5"
,
"bundled"
:
true
},
"is-fullwidth-code-point"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
,
"requires"
:
{
"number-is-nan"
:
"1.0.1"
}
},
"isarray"
:
{
"version"
:
"1.0.0"
,
"bundled"
:
true
},
"minimatch"
:
{
"version"
:
"3.0.4"
,
"bundled"
:
true
,
"requires"
:
{
"brace-expansion"
:
"1.1.11"
}
},
"minimist"
:
{
"version"
:
"0.0.8"
,
"bundled"
:
true
},
"minipass"
:
{
"version"
:
"2.3.4"
,
"bundled"
:
true
,
"requires"
:
{
"safe-buffer"
:
"5.1.2"
,
"yallist"
:
"3.0.2"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"bundled"
:
true
},
"yallist"
:
{
"version"
:
"3.0.2"
,
"bundled"
:
true
}
}
},
"minizlib"
:
{
"version"
:
"1.1.0"
,
"bundled"
:
true
,
"requires"
:
{
"minipass"
:
"2.3.4"
}
},
"mkdirp"
:
{
"version"
:
"0.5.1"
,
"bundled"
:
true
,
"requires"
:
{
"minimist"
:
"0.0.8"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"bundled"
:
true
},
"needle"
:
{
"version"
:
"2.2.3"
,
"bundled"
:
true
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"iconv-lite"
:
"0.4.24"
,
"sax"
:
"1.2.4"
}
},
"node-pre-gyp"
:
{
"version"
:
"0.11.0"
,
"bundled"
:
true
,
"requires"
:
{
"detect-libc"
:
"1.0.3"
,
"mkdirp"
:
"0.5.1"
,
"needle"
:
"2.2.3"
,
"nopt"
:
"4.0.1"
,
"npm-packlist"
:
"1.1.11"
,
"npmlog"
:
"4.1.2"
,
"rc"
:
"1.2.8"
,
"rimraf"
:
"2.6.2"
,
"semver"
:
"5.5.1"
,
"tar"
:
"4.4.6"
}
},
"nopt"
:
{
"version"
:
"4.0.1"
,
"bundled"
:
true
,
"requires"
:
{
"abbrev"
:
"1.1.1"
,
"osenv"
:
"0.1.5"
}
},
"npm-bundled"
:
{
"version"
:
"1.0.5"
,
"bundled"
:
true
},
"npm-packlist"
:
{
"version"
:
"1.1.11"
,
"bundled"
:
true
,
"requires"
:
{
"ignore-walk"
:
"3.0.1"
,
"npm-bundled"
:
"1.0.5"
}
},
"npmlog"
:
{
"version"
:
"4.1.2"
,
"bundled"
:
true
,
"requires"
:
{
"are-we-there-yet"
:
"1.1.5"
,
"console-control-strings"
:
"1.1.0"
,
"gauge"
:
"2.7.4"
,
"set-blocking"
:
"2.0.0"
}
},
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"bundled"
:
true
},
"object-assign"
:
{
"version"
:
"4.1.1"
,
"bundled"
:
true
},
"once"
:
{
"version"
:
"1.4.0"
,
"bundled"
:
true
,
"requires"
:
{
"wrappy"
:
"1.0.2"
}
},
"os-homedir"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
},
"os-tmpdir"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
},
"osenv"
:
{
"version"
:
"0.1.5"
,
"bundled"
:
true
,
"requires"
:
{
"os-homedir"
:
"1.0.2"
,
"os-tmpdir"
:
"1.0.2"
}
},
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"bundled"
:
true
},
"process-nextick-args"
:
{
"version"
:
"2.0.0"
,
"bundled"
:
true
},
"rc"
:
{
"version"
:
"1.2.8"
,
"bundled"
:
true
,
"requires"
:
{
"deep-extend"
:
"0.6.0"
,
"ini"
:
"1.3.5"
,
"minimist"
:
"1.2.0"
,
"strip-json-comments"
:
"2.0.1"
},
"dependencies"
:
{
"minimist"
:
{
"version"
:
"1.2.0"
,
"bundled"
:
true
}
}
},
"readable-stream"
:
{
"version"
:
"2.3.5"
,
"bundled"
:
true
,
"requires"
:
{
"core-util-is"
:
"1.0.2"
,
"inherits"
:
"2.0.3"
,
"isarray"
:
"1.0.0"
,
"process-nextick-args"
:
"2.0.0"
,
"safe-buffer"
:
"5.1.1"
,
"string_decoder"
:
"1.0.3"
,
"util-deprecate"
:
"1.0.2"
}
},
"rimraf"
:
{
"version"
:
"2.6.2"
,
"bundled"
:
true
,
"requires"
:
{
"glob"
:
"7.1.2"
}
},
"safe-buffer"
:
{
"version"
:
"5.1.1"
,
"bundled"
:
true
},
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
"bundled"
:
true
},
"sax"
:
{
"version"
:
"1.2.4"
,
"bundled"
:
true
},
"semver"
:
{
"version"
:
"5.5.1"
,
"bundled"
:
true
},
"set-blocking"
:
{
"version"
:
"2.0.0"
,
"bundled"
:
true
},
"signal-exit"
:
{
"version"
:
"3.0.2"
,
"bundled"
:
true
},
"string-width"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
,
"requires"
:
{
"code-point-at"
:
"1.1.0"
,
"is-fullwidth-code-point"
:
"1.0.0"
,
"strip-ansi"
:
"3.0.1"
}
},
"string_decoder"
:
{
"version"
:
"1.0.3"
,
"bundled"
:
true
,
"requires"
:
{
"safe-buffer"
:
"5.1.1"
}
},
"strip-ansi"
:
{
"version"
:
"3.0.1"
,
"bundled"
:
true
,
"requires"
:
{
"ansi-regex"
:
"2.1.1"
}
},
"strip-json-comments"
:
{
"version"
:
"2.0.1"
,
"bundled"
:
true
},
"tar"
:
{
"version"
:
"4.4.6"
,
"bundled"
:
true
,
"requires"
:
{
"chownr"
:
"1.1.1"
,
"fs-minipass"
:
"1.2.5"
,
"minipass"
:
"2.3.4"
,
"minizlib"
:
"1.1.0"
,
"mkdirp"
:
"0.5.1"
,
"safe-buffer"
:
"5.1.2"
,
"yallist"
:
"3.0.2"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"bundled"
:
true
},
"yallist"
:
{
"version"
:
"3.0.2"
,
"bundled"
:
true
}
}
},
"util-deprecate"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
},
"wide-align"
:
{
"version"
:
"1.1.3"
,
"bundled"
:
true
,
"requires"
:
{
"string-width"
:
"1.0.2"
}
},
"wrappy"
:
{
"version"
:
"1.0.2"
,
"bundled"
:
true
}
}
},
"bluebird"
:
{
"bluebird"
:
{
"version"
:
"3.5.1"
,
"version"
:
"3.5.1"
,
"resolved"
:
"https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz"
,
...
@@ -400,9 +830,9 @@
...
@@ -400,9 +830,9 @@
}
}
},
},
"mongoose"
:
{
"mongoose"
:
{
"version"
:
"5.3.
4
"
,
"version"
:
"5.3.
7
"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-5.3.
4
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-5.3.
7
.tgz"
,
"integrity"
:
"sha512-
DIUWOyYgZv2zGi/BoFEaFiaCVuDonnzGhW3cnc3JFjBScYn6z24tS2j3VB0dtMoX8FFjxmmMVnlmHPEIbV4PKA
=="
,
"integrity"
:
"sha512-
az9DtkYDuZFRpCa8aCnGHQP/up/P0fku8omtYxVwBAlQElO/yCJpKpIAR91szRbua6k9WNGpNde4KjdbA79Spg
=="
,
"requires"
:
{
"requires"
:
{
"async"
:
"2.6.1"
,
"async"
:
"2.6.1"
,
"bson"
:
"1.0.9"
,
"bson"
:
"1.0.9"
,
...
@@ -468,6 +898,11 @@
...
@@ -468,6 +898,11 @@
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
},
"nan"
:
{
"version"
:
"2.11.1"
,
"resolved"
:
"https://registry.npmjs.org/nan/-/nan-2.11.1.tgz"
,
"integrity"
:
"sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
},
"negotiator"
:
{
"negotiator"
:
{
"version"
:
"0.6.1"
,
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz"
,
...
...
mobile/package.json
View file @
b5b120bb
...
@@ -9,10 +9,11 @@
...
@@ -9,10 +9,11 @@
"author"
:
""
,
"author"
:
""
,
"license"
:
"ISC"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dependencies"
:
{
"bcrypt"
:
"^3.0.2"
,
"body-parser"
:
"^1.18.3"
,
"body-parser"
:
"^1.18.3"
,
"express"
:
"^4.16.4"
,
"express"
:
"^4.16.4"
,
"jsonwebtoken"
:
"^8.3.0"
,
"jsonwebtoken"
:
"^8.3.0"
,
"mongoose"
:
"^5.3.
4
"
,
"mongoose"
:
"^5.3.
7
"
,
"morgan"
:
"^1.9.1"
"morgan"
:
"^1.9.1"
}
}
}
}
mobile/Things.js
→
mobile/
week01/
Things.js
View file @
b5b120bb
...
@@ -20,4 +20,3 @@ ThingSchema = new Schema({
...
@@ -20,4 +20,3 @@ ThingSchema = new Schema({
}
}
})
})
module
.
exports
=
mongoose
.
model
(
'Things'
,
ThingSchema
)
module
.
exports
=
mongoose
.
model
(
'Things'
,
ThingSchema
)
mobile/Users.js
→
mobile/
week01/
Users.js
View file @
b5b120bb
File moved
mobile/testmongoose.js
→
mobile/
week01/
testmongoose.js
View file @
b5b120bb
File moved
mobile/config.js
→
mobile/
week02/
config.js
View file @
b5b120bb
File moved
mobile/server.js
→
mobile/
week02/
server.js
View file @
b5b120bb
...
@@ -2,8 +2,9 @@ express = require('express');
...
@@ -2,8 +2,9 @@ express = require('express');
app
=
express
();
app
=
express
();
bodyParser
=
require
(
'body-parser'
);
bodyParser
=
require
(
'body-parser'
);
morgan
=
require
(
'morgan'
);
morgan
=
require
(
'morgan'
);
mongoose
=
require
(
'mongoose'
);
mongoose
=
require
(
'mongoose'
);
jwt
=
require
(
'jsonwebtoken'
);
jwt
=
require
(
'jsonwebtoken'
);
config
=
require
(
'./config'
);
config
=
require
(
'./config'
);
User
=
require
(
'./user'
);
User
=
require
(
'./user'
);
...
@@ -11,7 +12,7 @@ User = require('./user');
...
@@ -11,7 +12,7 @@ User = require('./user');
// configuration
// configuration
// =======================
// =======================
// server setting
// server setting
var
port
=
process
.
env
.
PORT
||
8000
;
port
=
process
.
env
.
PORT
||
8000
;
// connect databse
// connect databse
mongoose
.
connect
(
config
.
database
,{
useNewUrlParser
:
true
});
mongoose
.
connect
(
config
.
database
,{
useNewUrlParser
:
true
});
...
@@ -24,7 +25,7 @@ app.use(bodyParser.urlencoded({ extended: false}));
...
@@ -24,7 +25,7 @@ app.use(bodyParser.urlencoded({ extended: false}));
app
.
use
(
bodyParser
.
json
());
app
.
use
(
bodyParser
.
json
());
// log request
// log request
app
.
use
(
morgan
(
'
dev
'
));
app
.
use
(
morgan
(
'
combined
'
));
// =======================
// =======================
// routes
// routes
...
@@ -49,16 +50,45 @@ app.get('/setup', function(req, res) {
...
@@ -49,16 +50,45 @@ app.get('/setup', function(req, res) {
// API ROUTES ================
// API ROUTES ================
apiRoutes
=
express
.
Router
();
apiRoutes
=
express
.
Router
();
// GET(http://localhost:8080/api/)
apiRoutes
.
get
(
'/'
,
function
(
req
,
res
)
{
res
.
json
({
message
:
'Welcome to API routing'
});
});
// POST(http://localhost:8000/api/authenticate)
apiRoutes
.
post
(
'/authenticate'
,
function
(
req
,
res
)
{
// find db by posted name
User
.
findOne
({
username
:
req
.
body
.
username
},
function
(
err
,
user
)
{
if
(
err
)
throw
err
;
// validation
if
(
!
user
)
{
res
.
json
({
success
:
false
,
message
:
'Authentication failed. User not found.'
});
return
;
}
if
(
user
.
password
!=
req
.
body
.
password
)
{
res
.
json
({
success
:
false
,
message
:
'Authentication failed. Wrong password.'
});
return
;
}
// when valid -> create token
var
token
=
jwt
.
sign
(
user
.
toJSON
(),
app
.
get
(
'superSecret'
),
{
expiresIn
:
'24h'
});
res
.
json
({
success
:
true
,
message
:
'Authentication successfully finished.'
,
token
:
token
});
});
});
// Authentification Filter
// Authentification Filter
apiRoutes
.
use
(
function
(
req
,
res
,
next
)
{
apiRoutes
.
use
(
function
(
req
,
res
,
next
)
{
// get token from body:token or query:token of Http Header:x-access-token
// get token from body:token or query:token of Http Header:x-access-token
var
token
=
req
.
body
.
token
||
req
.
query
.
token
||
req
.
headers
[
'x-access-token'
];
token
=
req
.
body
.
token
||
req
.
query
.
token
||
req
.
headers
[
'x-access-token'
];
// validate token
// validate token
if
(
!
token
)
{
if
(
!
token
)
{
...
@@ -80,58 +110,27 @@ apiRoutes.use(function(req, res, next) {
...
@@ -80,58 +110,27 @@ apiRoutes.use(function(req, res, next) {
});
});
});
});
// GET(http://localhost:8000/api/)
apiRoutes
.
get
(
'/'
,
function
(
req
,
res
)
{
res
.
json
({
message
:
'Welcome to API routing'
});
});
// GET(http://localhost:80
8
0/api/users)
// GET(http://localhost:80
0
0/api/users)
apiRoutes
.
get
(
'/users'
,
function
(
req
,
res
)
{
apiRoutes
.
get
(
'/users'
,
function
(
req
,
res
)
{
User
.
find
({},
function
(
err
,
users
)
{
User
.
find
({},
function
(
err
,
users
)
{
if
(
err
)
throw
err
;
if
(
err
)
throw
err
;
res
.
json
(
users
);
res
.
json
(
users
);
});
});
});
});
// apply the routes to our application(prefix /api)
// apply the routes to our application(prefix /api)
app
.
use
(
'/api'
,
apiRoutes
);
app
.
use
(
'/api'
,
apiRoutes
);
// POST(http://localhost:8080/api/authenticate)
apiRoutes
.
post
(
'/authenticate'
,
function
(
req
,
res
)
{
// find db by posted name
User
.
findOne
({
username
:
req
.
body
.
username
},
function
(
err
,
user
)
{
if
(
err
)
throw
err
;
// validation
if
(
!
user
)
{
res
.
json
({
success
:
false
,
message
:
'Authentication failed. User not found.'
});
return
;
}
if
(
user
.
password
!=
req
.
body
.
password
)
{
res
.
json
({
success
:
false
,
message
:
'Authentication failed. Wrong password.'
});
return
;
}
// when valid -> create token
var
token
=
jwt
.
sign
(
user
.
toJSON
(),
app
.
get
(
'superSecret'
),
{
expiresIn
:
'24h'
});
res
.
json
({
success
:
true
,
message
:
'Authentication successfully finished.'
,
token
:
token
});
});
});
// =======================
// =======================
// start the server
// start the server
// =======================
// =======================
app
.
listen
(
port
);
app
.
listen
(
port
);
console
.
log
(
'started http://localhost:'
+
port
+
'/'
);
console
.
log
(
'started http://localhost:'
+
port
+
'/'
);
\ No newline at end of file
mobile/user.js
→
mobile/
week02/
user.js
View file @
b5b120bb
File moved
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment