راهاندازی استک MEAN
MEAN یک استک توسعهی وب است که از چهار فناوری اصلی MongoDB (پایگاه داده NoSQL)، Express.js (فریمورک وب برای Node.js)، Angular (فریمورک فرانتاند) و Node.js (محیط اجرایی جاوااسکریپت) تشکیل شده است. این استک به توسعهدهندگان این امکان را میدهد که اپلیکیشنهای وب پویا و مقیاسپذیر بسازند. در ادامه، نحوه راهاندازی استک MEAN در سرور مجازی Ubuntu بهصورت گامبهگام توضیح داده شده است:
بهروزرسانی repositoryهای سرور
با اجرای دستور زیر، repositoryهای سرور را بهروز کنید:
sudo apt update
نصب Node.js و NPM
با اجرای دستورات زیر، نسخه پایدار LTS از Node.js را نصب کنید:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
برای بررسی نصب Node.js و NPM، از دستورات زیر استفاده کنید:
node -v
npm -v
نصب MongoDB
برای نصب MongoDB، در ابتدا، دستور زیر را اجرا کنید:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor && \
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] \
https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list && \
sudo apt-get update
سپس، دستور زیر را اجرا کنید تا MongoDB نصب شود:
sudo apt-get install -y mongodb-org
پس از نصب MongoDB، سرویس آن را با دستورات زیر، فعالسازی و راهاندازی کنید:
sudo systemctl daemon-reload
sudo systemctl start mongod
در نهایت، برای اطمینان از اینکه MongoDB بهدرستی نصب شده است، میتوانید از دستور زیر استفاده کنید:
sudo systemctl status mongod
در صورتی که در خروجی دستور فوق، عبارت active (running) را مشاهده کردید، به این معنی است که MongoDB به درستی نصب و اجرا شده است.
نصب و راهاندازی Express.js
یک دایرکتوری جدید برای پروژه خود ایجاد کنید و وارد آن شوید:
mkdir mean-app && cd mean-app
سپس، با اجرای دستور زیر، یک پروژه جدید Node.js ایجاد کنید:
npm init -y
در ادامه، Express.js را نصب کنید:
npm install express --save
اکنون، یک فایل جدید به نام server.js ایجاد کنید و کد زیر را در آن قرار دهید:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Express Server is Running');
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});
برای اجرای سرور، میتوانید از دستور زیر استفاده کنید:
node server.js
با اجرای کار فوق، سرور اجرا میشود و میتوانید با مراجعه به آدرس http://YOUR-IP-ADDRESS:3000، وبسرور خود را مشاهده کنید. بدیهی است که باید به جای YOUR-IP-ADDRESS، آدرس IP سرور خود را قرار دهید.
نصب Angular و ایجاد پروژه جدید با آن
با اجرای دستور زیر، Angular CLI را نصب کنید:
npm install -g @angular/cli
سپس، یک پروژه جدید Angular ایجاد کنید:
ng new client
پس از ایجاد پروژه، وارد دایرکتوری آن شوید و سرور Angular را اجرا کنید:
cd client
ng serve --host 0.0.0.0 --port 4200
با اجرای کار فوق، سرور Angular اجرا میشود و میتوانید با مراجعه به آدرس http://YOUR-IP-ADDRESS:4200، وبسرور خود را مشاهده کنید. بدیهی است که باید به جای YOUR-IP-ADDRESS، آدرس IP سرور خود را قرار دهید.
اتصال Node.js به MongoDB
برای اتصال Node.js به MongoDB، ابتدا باید mongoose را نصب کنید:
npm install mongoose --save
سپس، در فایل server.js، کد زیر را اضافه کنید:
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/meanDB', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log(err));
اکنون، میتوانید سرور را دوباره اجرا کنید تا اتصال به دیتابیس، برقرار شود.
ایجاد API با Express
در فایل server.js، یک مدل کاربر ساده ایجاد کنید:
const UserSchema = new mongoose.Schema({
name: String,
email: String
});
const User = mongoose.model('User', UserSchema);
سپس، یک API ساده برای اضافه کردن کاربر ایجاد کنید:
app.use(express.json());
app.post('/users', async (req, res) => {
const newUser = new User(req.body);
await newUser.save();
res.send(newUser);
});
اکنون، سرور را مجدداً با دستور node server.js، اجرا کنید.
اتصال Angular به API
در Angular، با اجرای دستور زیر، یک سرویس جدید ایجاد کنید:
ng generate service user
سپس، در فایل user.service.ts، کد زیر را اضافه کنید:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class UserService {
private apiUrl = 'http://<your-server-ip>:3000/users';
constructor(private http: HttpClient) { }
createUser(user: any) {
return this.http.post(this.apiUrl, user);
}
}
اتصال دامنه به سرور و فعالسازی SSL
برای اتصال دامنه به سرور و فعالسازی SSL، میتوانید از این راهنما استفاده کنید.
با اجرای قدم به قدم گامهای فوق، انتظار میرود که استک MEAN بهدرستی بر روی سرور مجازی شما نصب و پیکربندی شده باشد.