В этой статье вы увидите, как легко создать 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 следующим образом;