• Ang Node.js, Express.js, Mongoose.js at MongoDB ay ang mahusay na mga tool para sa pagbuo ng madali at mabilis na REST API.
  • Ang Node.js ay isang nakabalot na pagsasama ng engine ng V8 JavaScript ng Google.
  • Ang Express.js ay javascript web server na kumpleto ang pag-andar ng web development kabilang ang REST API.

Bago tayo magsimula, ipinag-uutos na mai-install sa iyong aparato


  • Node.js
  • MongoDB
  • Editor o IDE

Narito kami ay gumagamit ng Terminal at Atom bilang text editor. Para sa gumagamit ng Windows, maaari kang gumana gamit ang command line ng Node.js.

Lumikha ng Express.js Project at I-install ang Mga Kinakailangan na Modules

Tanghalian ang iyong terminal o node na linya ng utos, pumunta sa iyong folder ng mga proyekto.

Pagkatapos, gamit ang utos na ito ay i-install ang express generator.

$ sudo npm mag-install ng express-generator -g

Lumikha ng isang app ng Express.js gamit ang utos na ito.

$ ipinahayag ang node-rest-api -e

Susunod, pumunta sa bagong nilikha na folder ng proyekto pagkatapos mag-install ng mga node modules.

$ cd node-rest-api && npm install

Patakbuhin ang server gamit ang linya sa ibaba.

$ npm simula

Makukuha mo ang log na ito sa terminal.

> [email protected] simula / Mga Gumagamit / didin / Mga Dokumento / NodeApps / node-rest-api
> node ./bin/www

Pumunta sa iyong browser at uri localhost: 3000, Handa ang iyong server kung nakuha mo ang resulta sa ibaba

Magdagdag ng Mongoose.js Module bilang ORM para sa MongoDB

Ipakita ang CTRL + C upang ihinto ang node at pagkatapos ay i-type ang utos na mag-install ng module ng Mongoose.js.

$ npm mag-install ng mongoose –save

pagkatapos ay i-type ang utos na ito upang simulan ang MongoDB server.

$ mongod

Ngayon, gamit ang isang IDE o isang text editor, buksan at i-edit ang mga app.js sa ugat ng folder ng proyekto.
Ipahayag ang mongoose sa nangangailangan ng mga seksyon.

nangangailangan ng var mongoose = (‘mongoose’);

Gumamit ng mongoose na may katutubong Pangako ng Node.

mongoose.Promise = global.Promise;

Pagkatapos, Lumikha ng isang koneksyon sa MongoDB.

mongoose.connect (‘mongodb: // localhost / produkto’)
.pagkatapos (() =>  console.log (‘matagumpay ang koneksyon’))
.mahuli ((err) => console.error (err));

Patakbuhin ang node app gamit ito

$ npm simula

kung makuha mo ang mensaheng ito sa iyong terminal, matagumpay ang koneksyon sa MongoDB.

> [email protected] simula / Mga Gumagamit / didin / Mga Dokumento / NodeApps / node-rest-api
> node ./bin/www
matagumpay ang koneksyon

Lumikha ng Modelong Mongoose ng Produkto

Ang CTRL + C sa terminal upang ihinto ang node server, pagkatapos ay lumikha ng direktoryo ng mga modelo at file ng javascript bilang modelo.

mga modelo ng $ mkdir
$ touch models / Product.js

Sa Product.js file ang magdagdag ng mga sumusunod na linya ng mga code.

nangangailangan ng var mongoose = (‘mongoose’);
var ProductSchema = bagong mongoose.Schema ({
prod_name: String,
prod_desc: String,
prod_price: Bilang,
update_at: {type: Petsa, default: Date.now},
});
module.exports = mongoose.model (‘Product’, ProductSchema);

Lumikha ng Mga Ruta para sa pinakahuling punto ng API

magtatayo kami ng mga sumusunod na function para sa aming REST API .

PamamaraanMga pagtataposMga Tala
GET/ produktoKunin ang lahat ng mga produkto
GET/ produkto /: idKumuha ng solong produkto
POST/ produktoMagdagdag ng produkto
PUT/ produkto /: idI-update ang produkto
MABILIS/ produkto /: idTanggalin ang produkto

Una, idagdag ang javascript file sa mga ruta folder.

$ ruta ng mga ruta / produkto.js

sa mga ruta / product.js idagdag ang mga linyang ito ng mga code.

nangangailangan ng var Express = (‘magpahayag’);
var router = express.Router ();
nangangailangan ng var mongoose = (‘mongoose’);
nangangailangan ng var Product = ((.. .. modelo / Product.js ‘);
/ * KUMITA NG LAHAT NG PRODUKTO * /

router.get (‘/’, function (req, res, susunod) {
Product.find (function (mali, mga produkto) {
kung (err) bumalik sa susunod (err);
res.json (mga produkto);
});
});
/ * KUMITA NG PRODUKTO NG SINGLE NG ID * /

router.get (‘/: id’, function (req, res, susunod) {
Product.findById (req.params.id, pag-andar (err, post) {
kung (err) bumalik sa susunod (err);
res.json (post);
});
});
/ * I-save ang PRODUKTO * /

router.post (‘/’, function (req, res, susunod) {
Product.create (req.body, function (err, post) {
kung (err) bumalik sa susunod (err);
res.json (post);
});
});
/ * I-UPDATE PRODUKTO * /

router.put (‘/: id’, function (req, res, susunod) {
Product.findByIdAndUpdate (req.params.id, req.body, function (err, post) {
kung (err) bumalik sa susunod (err);
res.json (post);
});
});
/ * TAPAT NA PRODUKTO * /

router.delete (‘/: id’, function (req, res, susunod) {
Product.findByIdAndRemove (req.params.id, req.body, function (err, post) {
kung (err) bumalik sa susunod (err);
res.json (post);
});
});

module.exports = router;

Susunod, Sa mga app.js magdagdag ng ruta ng produkto ayon sa hinihiling matapos ang mga gumagamit.

nangangailangan ng mga produktong var = ((.. ruta / produkto ‘);

Pagkatapos ay idagdag ang paggamit pagkatapos gamitin ng mga gumagamit.

app.use (‘/ produkto’, mga produkto);

Mga Pagtatapos ng PINAKA REST API

Maraming mga tool para sa pagsubok ng REST API, sinusubukan namin ang paggamit ng CURL mula sa terminal.

Magsisimula kami sa Magdagdag / I-save ang data ng produkto muna.

$ curl -i -X ​​POST -H "Uri ng Nilalaman: application / json" -d ‘{ "prod_name":"HP laptop ","prod_desc":"ang bagong hp","prod_price": 999} ‘localhost: 3000 / mga produkto

Kung makukuha mo ang tugon na ito pagkatapos ay matagumpay na nai-save ang produkto.

HTTP / 1.1 200 OK
X-Powered-By: Express
Uri ng Nilalaman: application / json; charset = utf-8
Haba-Nilalaman: 185
ETag: W /"b9-ymiFjoNdt5wABoii1CiYbg"
Petsa: Araw, 19 Peb 2017 03:30:35 GMT
Koneksyon: panatilihing-buhay
{"__v": 0,"prod_name":"HP laptop ","prod_desc":"ang bagong hp ","prod_price": 999 ,"_id":"1","na-update_":"2018-08-07T03: 30: 34.415Z"}

Maaari kang pareho upang makatipid ng maraming mga tala.

Ngayon, kukuha kami ng lahat ng data ng mga produkto sa pamamagitan ng pag-type ng utos na ito.

$ curl -i -H "Tanggapin: aplikasyon / json" localhost: 3000 / produkto

Ang tugon ay ipapakita sa format ng JSON tulad ng mga sumusunod.

HTTP / 1.1 200 OK
X-Powered-By: Express
Uri ng Nilalaman: application / json; charset = utf-8
Haba-Nilalaman: 344
ETag: W /"158-V1WRYZrNC8yW7HFEfOSSew"
Petsa: Araw, 19 Peb 2017 03:34:26 GMT
Koneksyon: panatilihing-buhay
[{"_id":"1","prod_name":"HP laptop","prod_desc":"ang bagong hp ","prod_price": 999,"__v": 0,"na-update_":"2018-08-07T03: 30: 34.415Z"},"_id":"2","prod_name":"Sony Xperia","prod_desc":" Sony phone"," prod_price": 600,"__v": 0,"na-update_":"2018-08-05T03: 33: 24.941Z"}]

Susunod, upang makakuha ng isang produkto sa pamamagitan ng id gamitin ang utos na ito.

$ curl -i -H "Tanggapin: aplikasyon / json" localhost: 3000 / produkto / 2

Narito ang tugon.

HTTP / 1.1 200 OK
X-Powered-By: Express
Uri ng Nilalaman: application / json; charset = utf-8
Haba-Nilalaman: 156
ETag: W /"9c-NYW3p4BkPVbiNf05Ezj + zA"
Petsa: Araw, 19 Peb 2017 03:45:48 GMT
Koneksyon: panatilihing-buhay
{"_id":"2","prod_name":"Sony Xperia","prod_desc":"Sony phone  ","prod_price": 600,"__v": 0,"na-update_":"2018-08-05T03: 33: 24.941Z"}]

Susunod, pupunta kami upang i-update ang isang produkto sa pamamagitan ng id gamit ang utos na ito.

$ curl -i -X ​​PUT -H "Uri ng Nilalaman: application / json" -d ‘{"prod_desc":"ang matandang hp"} ‘localhost: 3000 / produkto / 1

ang tugon ay dapat na ganito.

HTTP / 1.1 200 OK
X-Powered-By: Express
Uri ng Nilalaman: application / json; charset = utf-8
Haba-Nilalaman: 185
ETag: W /"b9-k9Wipgusc9JVZAMyHgjVXw"
Petsa: Araw, 19 Peb 2017 03:38:24 GMT
Koneksyon: panatilihing-buhay
{"_id":"1","prod_name":"HP laptop","prod_desc":"ang bagong hp ","prod_price": 999,"__v": 0,"na-update_":"2018-08-07T06: 30: 34.415Z"}

Sa wakas, tatanggalin namin ang isang produkto sa pamamagitan ng id tulad ng sumusunod.

$ curl -i -X ​​DELETE localhost: 3000 / produkto / 1

Ang tugon ay magiging ganito.

HTTP / 1.1 200 OK
X-Powered-By: Express
Uri ng Nilalaman: application / json; charset = utf-8
Haba-Nilalaman: 155
ETag: W /"9b-pP1KXaQhyqcMkvBlLa6pFQ"
Petsa: Araw, 19 Peb 2017 03:41:54 GMT
Koneksyon: panatilihing-buhay
{"_id":"1","prod_name":"HP laptop","prod_desc":"ang bagong hp ","prod_price": 999,"__v": 0,"na-update_":"2018-08-07T06: 30: 34.415Z"}

Mabilis na REST API Paglikha gamit ang Node-Restful Library

Ang isa sa mas mabilis at matikas na pamamaraan para sa paglikha ng REST API ay ang Node-Restful library na maaari mong mahanap sa Github. Maaari kang magdagdag ng library gamit ang utos npm.

$ npm-install ang node-restful –save

Sa app.js sa ugat ng proyekto. Magdagdag ng nangangailangan ng linya para sa Node-Muling at Pamamaraan-Override.

var restful = nangangailangan (‘node-restful’);
pamamaraan ng varOverride = nangangailangan (‘method-override’);

Baguhin "pinalawak ang bodyParse" halaga sa totoo pagkatapos ay idagdag ang mga linyang ito.

app.use (bodyParser.urlencoded ({‘pinalawig’: ‘totoo’}));
app.use (bodyParser.json ({type: ‘application / vnd.api + json’}));
app.use (pamamaraanOverride ());

Gagawa kami ng modelo ng mongoose na maaaring magamit nang magkasama sa Node-Restful library. Narito kami ay lumilikha "kategorya" modelo.

var Category = app.resource = restful.model (‘kategorya’, mongoose.Schema ({
cat_name: String,
}))
.mga pamamaraan ([‘makuha’, ‘post’, ‘ilagay’, ‘tanggalin’]);
Category.register (app, ‘/ kategorya’);

Patakbuhin muli ang app at subukan ito gamit ang nakaraang paraan para sa pagsubok sa REST API.

Tingnan ang nangungunang 3 mga serbisyo sa pagho-host ng Node.js:

A2 Hosting

Panimulang presyo:
$ 3.92


Kahusayan
9.3


Pagpepresyo
9.0


Friendly ng Gumagamit
9.3


Suporta
9.3


Mga Tampok
9.3

Basahin ang mga review

Bisitahin ang A2 Hosting

FastComet

Panimulang presyo:
$ 2.95


Kahusayan
9.7


Pagpepresyo
9.5


Friendly ng Gumagamit
9.7


Suporta
9.7


Mga Tampok
9.6

Basahin ang mga review

Bisitahin ang FastComet

Hostinger

Panimulang presyo:
$ 0.99


Kahusayan
9.3


Pagpepresyo
9.3


Friendly ng Gumagamit
9.4


Suporta
9.4


Mga Tampok
9.2

Basahin ang mga review

Bisitahin ang Hostinger

Kaugnay na Mga Artikulo Paano-Sa

  • Paano i-install ang MongoDB sa Iyong CentOS 7 VPS o Dedicated Server
    nasa pagitan
  • Paano i-install ang MongoDB sa Iyong Ubuntu 18.04 VPS o Dedicated Server
    nasa pagitan
  • Paano Mag-install ng MongoDB Sa Ubuntu 18.04
    nasa pagitan
  • Paano i-install ang MongoDB sa isang Debian 9 VPS o Dedicated Server
    newbie
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me