برنامه نویسی

Express.js – انجمن DEV

Summarize this content to 400 words in Persian Lang

اکسپرس چیست؟

Express.js یا به سادگی Express، یک چارچوب برنامه کاربردی وب برای ساخت API های RESTful با Node.js است که به عنوان نرم افزار رایگان و منبع باز تحت مجوز MIT منتشر شده است. برای ساخت برنامه های کاربردی وب و API طراحی شده است. آن را فریم ورک استاندارد سرور برای Node.js می نامند

مقداردهی اولیه:

npm init

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب اکسپرس:

npm install express –save

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب nodemon

npm i nodemon

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

nodemon ابزاری است که به توسعه برنامه‌های مبتنی بر Node.js با راه‌اندازی خودکار برنامه نود هنگام شناسایی تغییرات فایل در فهرست، کمک می‌کند.

سرور اکسپرس را بر روی: localhost:3000

ارسال json: localhost:3000/jsonexample

path یک ماژول inbuild استمی توانیم دایرکتوری ها را فراخوانی کنیم

پارامترها

ویژگی req.params یک شی است که حاوی ویژگی هایی است که به مسیر نامگذاری شده «پارامترها» نگاشت شده است. به عنوان مثال، اگر مسیر /student/:id را دارید، ویژگی “id” به عنوان req.params.id در دسترس است. این شی به طور پیش فرض روی {} است.http://localhost:3000/api/products/3

پرس و جوویژگی req.query به شما امکان می دهد از URL درخواست HTTP ورودی به پارامترهای پرس و جو دسترسی داشته باشید. پارامترهای پرس و جو جفت های کلید-مقدار هستند که در URL بعد از “؟” گنجانده شده اند. نماد، و آنها با نمادهای “&” از هم جدا می شوند.http://localhost:3000/api/v1/query?search=r&limit=2

عملیات خام خامماژول ها

const express = require(‘express’)
const app = express();

//app.use(express.json());

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

let books یک arr obj است

let books = [
{id:1,title:’Book 1′,author: ‘author 1′},
{id:2,title:’Book 2’,author: ‘author 2’},
]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خواندن

app.get(“https://dev.to/”, (req, res) => {
res.json(books)
})

app.use(express.json())

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ايجاد كردن

app.post(‘/books’, (req, res) => {
console.log(req.body)
const newBook = req.body;
newBook.id = books.length + 1;
books.push(newBook);
res.status(201).json(newBook)

})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به روز رسانی/قرار دادن

app.put(‘/books/:id’,(req, res)=> {
const id = parseInt(req.params.id)
const updatedBooks = req.body
const index = books.findIndex(book => book.id === id);

if (index !== -1) {
books[index] = { …books[index], …updatedBooks }
res.json(books[index])
}
else {
res.status(404).json({error: “book not found”})
}

})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حذف

app.delete(‘/books/:id’, (req, res) => {
const id = parseInt(req.params.id);
const index = books.findIndex((book) => book.id === id);
if (index !== -1) {
const deletedBook = books[index];
books.slice(index, 1);
res.json(deletedBook);
} else {
res.status(404).json({ error: “book not found” });
}
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بندر

app.listen(3000, () => {
console.log(‘server is running on port 3000’)
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اما این روش خوبی برای اجرای عملیات CRUD نیستراه بهتری وجود داردساختار پوشه

index.js

const express = require(‘express’)
const app = express();
const bookRoutes=require(‘./routes/bookRoutes’)

app.use(express.json());
app.use(“https://dev.to/”,bookRoutes)

app.listen(3000, () => {
console.log(‘server is running on port 3000’)
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

bookController.js

let books = [
{ id: 1, title: “Book 1”, author: “author 1” },
{ id: 2, title: “Book 2”, author: “author 2” },
];

//read
const getBooks=(req, res) => {
res.json(books);
}

//create
const createBooks= (req, res) => {
console.log(req.body);
const newBook = req.body;
newBook.id = books.length + 1;
books.push(newBook);
res.status(201).json(newBook);
}

//update /put
const updateBooks= (req, res) => {
const id = parseInt(req.params.id);
const updatedBooks = req.body;
const index = books.findIndex((book) => book.id === id);

if (index !== -1) {
books[index] = { …books[index], …updatedBooks };
res.json(books[index]);
} else {
res.status(404).json({ error: “book not found” });
}
}

//delete
const deleteBooks= (req, res) => {
const id = parseInt(req.params.id);
const index = books.findIndex((book) => book.id === id);
if (index !== -1) {
const deletedBook = books[index];
books.slice(index, 1);
res.json(deletedBook);
} else {
res.status(404).json({ error: “book not found” });
}
}

module.exports = {
getBooks,createBooks,updateBooks,deleteBooks
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

bookRoutes.js

const express = require(‘express’)

const bookController = require(‘../controllers/bookController’)

const router = express.Router()

router.get(‘/books’,bookController.getBooks)
router.post(‘/books’,bookController.createBooks)
router.put(‘/books/:id’,bookController.updateBooks)
router.delete(‘/books/:id’, bookController.deleteBooks)

module.exports = router;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در github چک کنید:

اکسپرس چیست؟

Express.js یا به سادگی Express، یک چارچوب برنامه کاربردی وب برای ساخت API های RESTful با Node.js است که به عنوان نرم افزار رایگان و منبع باز تحت مجوز MIT منتشر شده است. برای ساخت برنامه های کاربردی وب و API طراحی شده است. آن را فریم ورک استاندارد سرور برای Node.js می نامند

مقداردهی اولیه:

npm init 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب اکسپرس:

npm install express --save 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب nodemon

npm i nodemon
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

nodemon ابزاری است که به توسعه برنامه‌های مبتنی بر Node.js با راه‌اندازی خودکار برنامه نود هنگام شناسایی تغییرات فایل در فهرست، کمک می‌کند.

سرور اکسپرس را بر روی: localhost:3000

توضیحات تصویر

ارسال json: localhost:3000/jsonexample

توضیحات تصویر
path یک ماژول inbuild است
می توانیم دایرکتوری ها را فراخوانی کنیم

توضیحات تصویر

پارامترها

ویژگی req.params یک شی است که حاوی ویژگی هایی است که به مسیر نامگذاری شده «پارامترها» نگاشت شده است. به عنوان مثال، اگر مسیر /student/:id را دارید، ویژگی “id” به عنوان req.params.id در دسترس است. این شی به طور پیش فرض روی {} است.
http://localhost:3000/api/products/3

توضیحات تصویر

پرس و جو
ویژگی req.query به شما امکان می دهد از URL درخواست HTTP ورودی به پارامترهای پرس و جو دسترسی داشته باشید. پارامترهای پرس و جو جفت های کلید-مقدار هستند که در URL بعد از “؟” گنجانده شده اند. نماد، و آنها با نمادهای “&” از هم جدا می شوند.
http://localhost:3000/api/v1/query?search=r&limit=2

توضیحات تصویر

عملیات خام خام
ماژول ها

const express = require('express')
const app = express();

//app.use(express.json());
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

let books یک arr obj است

let books = [
    {id:1,title:'Book 1',author: 'author 1'},
    {id:2,title:'Book 2',author: 'author 2'},
]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خواندن

app.get("https://dev.to/", (req, res) => {
    res.json(books)
})

app.use(express.json())

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ايجاد كردن

app.post('/books', (req, res) => {
    console.log(req.body)
    const newBook = req.body;
    newBook.id = books.length + 1;
    books.push(newBook);
    res.status(201).json(newBook)

})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به روز رسانی/قرار دادن

app.put('/books/:id',(req, res)=> {
    const id = parseInt(req.params.id)
    const updatedBooks = req.body
    const index = books.findIndex(book => book.id === id);

    if (index !== -1) {
        books[index] = { ...books[index], ...updatedBooks }
        res.json(books[index])
    }
    else {
        res.status(404).json({error: "book not found"})
    }

})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حذف

app.delete('/books/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const index = books.findIndex((book) => book.id === id);
    if (index !== -1) {
      const deletedBook = books[index];
      books.slice(index, 1);
      res.json(deletedBook);
    } else {
      res.status(404).json({ error: "book not found" });
    }
})

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بندر

app.listen(3000, () => {
    console.log('server is running on port 3000')
})
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اما این روش خوبی برای اجرای عملیات CRUD نیست
راه بهتری وجود دارد
ساختار پوشه

توضیحات تصویر

index.js

const express = require('express')
const app = express();
const bookRoutes=require('./routes/bookRoutes')

app.use(express.json());
app.use("https://dev.to/",bookRoutes)

app.listen(3000, () => {
    console.log('server is running on port 3000')
})
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

bookController.js

let books = [
  { id: 1, title: "Book 1", author: "author 1" },
  { id: 2, title: "Book 2", author: "author 2" },
];

//read
const getBooks=(req, res) => {
  res.json(books);
}

//create
const createBooks= (req, res) => {
  console.log(req.body);
  const newBook = req.body;
  newBook.id = books.length + 1;
  books.push(newBook);
  res.status(201).json(newBook);
}

//update /put
const updateBooks= (req, res) => {
  const id = parseInt(req.params.id);
  const updatedBooks = req.body;
  const index = books.findIndex((book) => book.id === id);

  if (index !== -1) {
    books[index] = { ...books[index], ...updatedBooks };
    res.json(books[index]);
  } else {
    res.status(404).json({ error: "book not found" });
  }
}

//delete
const deleteBooks=  (req, res) => {
  const id = parseInt(req.params.id);
  const index = books.findIndex((book) => book.id === id);
  if (index !== -1) {
    const deletedBook = books[index];
    books.slice(index, 1);
    res.json(deletedBook);
  } else {
    res.status(404).json({ error: "book not found" });
  }
}

module.exports = {
    getBooks,createBooks,updateBooks,deleteBooks
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

bookRoutes.js

const express = require('express')

const bookController = require('../controllers/bookController')

const router = express.Router()

router.get('/books',bookController.getBooks)
router.post('/books',bookController.createBooks)
router.put('/books/:id',bookController.updateBooks)
router.delete('/books/:id', bookController.deleteBooks)

module.exports = router;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در github چک کنید:

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا