nodejs melaksanakan mvc

王林
Lepaskan: 2023-05-17 10:23:37
asal
884 orang telah melayarinya

Node.js ialah sumber terbuka, persekitaran masa jalan JavaScript merentas platform. Ia membolehkan kami menulis aplikasi sisi pelayan menggunakan JavaScript. Sangat mudah untuk membangunkan aplikasi sisi pelayan berprestasi tinggi menggunakan Node.js. Dalam artikel ini, kami akan membincangkan cara melaksanakan seni bina MVC menggunakan Node.js.

  1. Apakah itu MVC?

MVC ialah singkatan kepada Model-View-Controller. Ia adalah corak reka bentuk yang menyusun kod dengan cara yang memisahkan aplikasi dan menjadikan aplikasi mudah untuk diselenggara dan dilanjutkan.

  • Model: Mengandungi semua data aplikasi dan logik perniagaan yang berkaitan.
  • Paparan: Antara muka pengguna, yang mendapatkan data daripada Model dan membentangkannya kepada pengguna.
  • Pengawal: mengendalikan interaksi antara antara muka pengguna dan logik perniagaan dan mengembalikan hasil kepada antara muka pengguna. Ia boleh bertindak sebagai perisian tengah seperti penghalaan, perisian tengah dan pengawal.

MVC menjadikan kod sangat modular, menjadikannya mudah untuk memfaktor semula dan menyelenggara bahagian aplikasi yang berbeza. Dalam Node.js, kita boleh menggunakan pelbagai rangka kerja untuk membina aplikasi MVC. Dalam artikel ini, kita akan membincangkan cara melaksanakan seni bina MVC menggunakan rangka kerja Express.

  1. Bagaimana untuk melaksanakan MVC menggunakan rangka kerja Express?

Express ialah rangka kerja popular untuk Node.js yang menyediakan alatan dan perisian tengah untuk membina aplikasi web dengan pantas. Kami boleh melaksanakan MVC menggunakan rangka kerja Express.

Pertama, kita perlu memasang rangka kerja Express. Gunakan arahan berikut dalam baris arahan:

npm install express --save
Salin selepas log masuk

Seterusnya, kita perlu memasang enjin templat. Dalam artikel ini, kami akan menggunakan EJS sebagai enjin templat. Gunakan arahan berikut dalam baris arahan:

npm install ejs --save
Salin selepas log masuk

Berikut ialah struktur direktori asas:

- app/
    - controllers/
    - models/
    - views/
- public/
- routes/
- app.js
Salin selepas log masuk

Kami akan membahagikan aplikasi kepada tiga komponen: pengawal, model dan paparan.

  1. Pengawal

Dalam folder Pengawal kami akan mentakrifkan logik pengawal kami. Sebagai contoh, kita boleh mempunyai fail yang dipanggil userController.js yang akan mengendalikan permintaan berkaitan pengguna.

Dalam fail userController.js kami boleh mengeksport objek dan kaedah yang berbeza untuk menggunakannya dalam aplikasi. Berikut ialah contoh:

const User = require('../models/user');

const UserController = {};

UserController.index = (req, res) => {
    // 获取所有用户
    User.getAll((err, users) => {
        if (err) {
            console.log(err);
            return;
        }
        // 渲染视图
        res.render('users/index', { users });
    });
};

UserController.show = (req, res) => {
    // 获取单个用户
    User.getById(req.params.id, (err, user) => {
        if (err) {
            console.log(err);
            return;
        }
        // 渲染视图
        res.render('users/show', { user });
    });
};

module.exports = UserController;
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan objek yang dipanggil UserController dan mengeksport dua kaedah: indeks dan tunjukkan. Kaedah ini akan mendapatkan data pengguna dan menghantarnya kepada enjin templat EJS untuk dipamerkan. Kami boleh menggunakan kaedah ini dalam laluan aplikasi kami untuk mengendalikan permintaan pengguna.

  1. Model

Dalam folder model, kami akan mentakrifkan logik lapisan Model. Sebagai contoh, kita boleh mempunyai fail yang dipanggil user.js yang akan menentukan data berkaitan pengguna dan logik perniagaan.

Dalam fail user.js, kita boleh menggunakan rangka kerja ORM (Pemetaan Perhubungan Objek) Node.js untuk menentukan model. Berikut ialah contoh:

const sql = require('../config/db').pool;

const User = {};

User.getAll = (callback) => {
    sql.query('SELECT * FROM users', (err, users) => {
        if (err) {
            callback(err, null);
            return;
        }
        callback(null, users);
    });
};

User.getById = (id, callback) => {
    sql.query('SELECT * FROM users WHERE id = ?', [id], (err, user) => {
        if (err) {
            callback(err, null);
            return;
        }
        callback(null, user[0]);
    });
};

module.exports = User;
Salin selepas log masuk

Dalam kod di atas, kami mengeksport objek bernama Pengguna dan mentakrifkan dua kaedah: getAll dan getById. Kaedah ini akan melaksanakan pertanyaan SQL dan menghantar keputusan kembali kepada pengawal.

  1. Paparan

Dalam folder pandangan kami akan mentakrifkan fail paparan EJS kami. Sebagai contoh, kita boleh mempunyai fail yang dipanggil index.ejs yang memaparkan data untuk semua pengguna.

Berikut ialah contoh:

<h1>All Users</h1>

<% if (users && users.length > 0) { %>
  <ul>
    <% users.forEach(function(user) { %>
      <li><a href="/users/<%= user.id %>"><%= user.name %></a></li>
    <% }); %>
  </ul>
<% } else { %>
  <p>No users found.</p>
<% } %>
Salin selepas log masuk

Dalam kod di atas, kami akan menggunakan sintaks EJS untuk memaparkan semua pengguna dan mencipta senarai. Kami menghantar data pengguna dalam pengawal dan menjadikannya dalam paparan.

  1. Laluan

Dalam folder laluan kami akan menentukan laluan untuk aplikasi kami. Dalam fail app.js kami akan mengkonfigurasi perisian tengah kami. Berikut ialah contoh:

const express = require('express');
const app = express();
const router = express.Router();
const UserController = require('./app/controllers/userController');

// 路由
router.get('/', UserController.index);
router.get('/users/:id', UserController.show);

// 中间件
app.use(express.static('public'));
app.use(express.urlencoded({ extended: true }));
app.set('view engine', 'ejs');
app.set('views', __dirname + '/app/views');
app.use(router);

// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Server listening on port ${PORT}.`);
});
Salin selepas log masuk

Dalam kod di atas, kami telah menentukan dua laluan: satu untuk memberikan data untuk semua pengguna dan satu lagi untuk memaparkan data untuk seorang pengguna. Kami juga mengkonfigurasi perisian tengah yang membolehkan kami menggunakan enjin templat EJS dan menggunakan fail statik. Akhirnya, kami memulakan pelayan.

  1. Ringkasan

Dalam artikel ini, kami melaksanakan seni bina MVC menggunakan rangka kerja Express. Kami membahagikan aplikasi kepada tiga komponen: pengawal, model dan pandangan. Kami juga menggunakan rangka kerja ORM Node.js untuk mentakrifkan model dan enjin templat EJS untuk memaparkan paparan. Akhir sekali, kami menggunakan penghalaan untuk mengendalikan permintaan pengguna dan menghantar data kembali kepada pengawal dan pandangan.

Seni bina MVC Node.js membantu sangat memudahkan penyelenggaraan dan penskalaan aplikasi. Selain itu, rangka kerja Express menyediakan banyak alatan berguna dan perisian tengah yang boleh membantu kami membina aplikasi web dengan lebih pantas.

Atas ialah kandungan terperinci nodejs melaksanakan mvc. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!