Статьи

Создание приложения REST в node.js с помощью Express

В этой статье вы увидите, как легко создать REST API в  node.js,  используя платформу  Express  . Предварительные условия для этого руководства — базовые знания по node.js и базовое понимание архитектуры REST. Вам не нужно никаких специальных знаний.

Сначала мы создадим папку приложения узла, имя нашего приложения будет  общим,  как и имя папки.

$ mkdir share
$ cd share

Теперь мы можем создать наше приложение узла с помощью команды npm init .

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (share) 
version: (1.0.0) 
description: Sample RestApi
entry point: (index.js) app.js
test command: 
git repository: 
keywords: 
author: dursun
license: (ISC) 
About to write to /Users/dursun/workspaces/dzone/myArt/share/package.json:

{
  "name": "share",
  "version": "1.0.0",
  "description": "Sample RestApi",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "dursun",
  "license": "ISC"
}


Is this ok? (yes) yes

Следующим шагом является добавление экспресс-фреймворка и body-parser в наш проект.

$ npm install express --save
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
$ npm install body-parser --save 
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
[email protected] node_modules/body-parser
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])

Прежде чем мы начнем кодирование, давайте взглянем на наш файл package.json, он должен выглядеть следующим образом;

{
  "name": "share",
  "version": "1.0.0",
  "description": "Sample RestApi",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "dursun",
  "license": "ISC",
  "dependencies": {
    "express": "^4.13.3"
  }
}

Теперь пришло время создать наш входной файл приложения app.js, 

var express = require('express'),
bodyParser  = require('body-parser');

var app = express();

app.use(bodyParser.json());

var shareRouter = express.Router();

var db = [];

shareRouter.route('/')
    .get(function(req, res) {
    res.status(200).json(db);
    })
    .post(function(req,res){
    db.push(req.body);
    res.status(200).json(db);
    });


app.use('/api/share', shareRouter);

app.listen(8080, function(){
console.log('Application started.');
})

module.exports = app;

В строке 1 и 2 включены интегрированные среды, в строке 4 создано экспресс- приложение, а в строке 24 приложение начало прослушивание.

От строки 6 до 22 приложение настроено. В строке 22 мы перенаправили все запросы, сделанные по URL / api / share , на shareRouter . В shareRouter ручки и GET , и почтовые запросы на GET запросов , которые мы просто вернуть дб объект. Для почтовых запросов мы добавили объект, указанный в теле. кстати, тело запроса post анализируется в json с помощью экспресс-парсера тела промежуточного программного обеспечения, который добавляется в строке 6.

Запустите приложение и проверьте API:

$ node app.js
Application started.

Мы будем использовать почтальон для проверки нашего API следующим образом;