برنامه نویسی

استقرار Node.js با برنامه TypeScript + MongoDB در Vercel به عنوان یک عملکرد بدون سرور

سلام devs ،

همه ما با شرایطی روبرو شده ایم که به یک API نقطه پایانی نیاز داریم ، که طبق نیاز ما عمل می کند اما نتوانستیم آنچه را که می خواستیم پیدا کنیم.

بنابراین ، در اینجا یکی از راه حل های بسیاری است که من استفاده کرده ام

بیایید یک برنامه node.js را به صورت رایگان مستقر کنیم

مقدمه

امنیت جنبه مهمی از برنامه های وب مدرن است. در این وبلاگ ، ما با استفاده از احراز هویت TypeScript ، MongoDB و Json Web Token (JWT) از طریق ساخت یک برنامه Node.js Secure.

پیش نیازهای

  • قبل از شروع ، مطمئن شوید که موارد زیر را نصب کرده اید:
  • node.js (v18 یا بعد)
  • MongoDB (محلی یا مبتنی بر ابر ، به عنوان مثال ، اطلس MongoDB)
  • شرح
  • ویرایشگر کد (در مقابل کد توصیه می شود)

تنظیم پروژه:

mkdir node-app && node-app
npm init -y
npm install typescript ts-node @types/node --save-dev
npx tsc --init
حالت تمام صفحه را وارد کنید

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

اصلاح tsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./dist",
    "rootDir": "./",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  },
  "include": ["./**"],
  "exclude": ["node_modules"]
} 
حالت تمام صفحه را وارد کنید

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

بسته های مورد نیاز را نصب کنید:

npm install express mongoose jsonwebtoken bcryptjs dotenv cors
npm install --save-dev @types/express @types/jsonwebtoken @types/bcryptjs @types/cors
npm i -g nodemon
حالت تمام صفحه را وارد کنید

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

از اینجا ما می رویم و دو مسیر برای برنامه خود ایجاد خواهیم کرد و سپس برنامه خود را به Vercel مستقر خواهیم کرد:

در اینجا پرونده index.ts من است:

import express, { Express, Request, Response } from 'express';
import * as dotenv from 'dotenv';
import cors from 'cors';
import mongoose from "mongoose";


// Load environment variables from .env file
dotenv.config();

const app: Express = express();
const PORT= Number(process.env.PORT) || 3000;

// Connect to MongoDB

mongoose.connect(process.env.MONGO_URI as string)
    .then(() => console.log("MongoDB connected"))
    .catch(err => console.error("MongoDB connection error:", err));

// Middleware to parse JSON bodies
app.use(express.json());

// CORS configuration
app.use(cors());

// Basic route
app.get('/', (req: Request, res: Response) => {
  res.json({ message: 'Hello from TypeScript Express!' });
});

app.get('/health', (req: Request, res: Response) => {
  res.json({ message: 'Application Running' });
});

console.log(process.env);

// Start server
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});
حالت تمام صفحه را وارد کنید

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

ایجاد a .env پرونده

PORT=5000
MONGO_URI=your_mongodb_connection_string
حالت تمام صفحه را وارد کنید

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

اکنون در محلی دستور زیر را اجرا کنید:

nodemon index.ts
حالت تمام صفحه را وارد کنید

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

باید منجر شود

Server is running on port ${PORT}
حالت تمام صفحه را وارد کنید

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

بیایید اکنون به قسمت جالب برسیم و درخواست را در Vercel مستقر کنیم

اگر هیچ حساب Vercel ندارید ، پس از آن با GitHub وارد شوید.

نکته اصلی ایجاد پیکربندی Vercel است که به Vercel می گوید که چگونه برنامه ما باید رفتار کند:

  • پرونده vercel.json را برای برنامه اضافه کنید:
{
  "version": 2,
  "builds": [
    {
      "src": "src/index.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/index.ts"
    }
  ]
}
حالت تمام صفحه را وارد کنید

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

  • بیایید با استفاده از ترمینال خود برنامه را ایجاد و مستقر کنیم:

vercel --prod

پس از استقرار می توانید برنامه Vercel خود را به repo Github خود وصل کرده و کد را در هر فشار روی شعبه مورد نظر خود مستقر کنید.

گزارش های برنامه خود را در vercel.com/ {your_username }/ {app_name }/logs باز کنید
من برای این کار بیشتر در مخزن GitHub خود اضافه کرده ام:

git: https://github.com/harish9312/node-vercel

base_url: https://node-vercel-ts-mongo.vercel.app/

برای اصلاحات/پیشنهاد باز کنید و نظرات خود را به اشتراک بگذارید

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

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

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

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