
នៅក្នុងកម្មវិធី Express ដែលហៅថា «ក្បួនកណ្តាល» (middleware) គឺជាបណ្តាក្បួនខ្នាតទាំងឡាយណាដែលត្រូវយកមកប្រើ ក្នុងគោលបំណងសំរេចបានលទ្ធផលមួយចំនួន ដើម្បីយកទៅកែច្នៃបង្កើតជាលទ្ធផលសំរេចផ្សេងៗ ដែលជាការឆ្លើយតបទៅនឹងសំណើររបស់អ្នកចូលមើលគេហទំព័រ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
var http = require('http'); var express = require('express'); var app = express(); var path = require('path'); var port = process.env.PORT || 3000; var indexRouter = require('./routes/index'); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); //ការយកក្បួនកណ្តាលមួយមកប្រើនៅក្នុងកម្មវិធី app.use(function (req, res, next) { console.log('Time:', Date.now()) next() }) app.use('/', indexRouter); app.listen(port, function() { console.log('The server is running at port '+port); });


នៅលើបន្ទាត់លេខ 13 ការសរសេរថា app.use(function (req, res, next) { គឺជាការយកក្បួនកណ្តាលមួយមក ក្នុងគោលបំណងបង្ហាញពេលម៉ោង នៅពេលដែលកម្មវិធីខាងលើនេះមានដំណើរការ។
ដូចនេះយើងឃើញថា នៅពេលយកមកប្រើ ក្បួនកណ្តាលទទួលបាននូវដំណឹងមួយដែលជាក្បួនឈ្មោះ next() ដែលត្រូវយកទៅនៅទីបញ្ចប់នៃក្បួនកណ្តាល ដើម្បីអោយកម្មវិធីគេហទំព័រអាចមានដំណើរការបន្តទៅទៀត។ ផ្ទុយទៅវិញ បើគ្មានការយកក្បួនឈ្មោះ next() នេះមកប្រើប្រាស់នៅទីបញ្ចប់នៃក្បួនកណ្តាលទេ កម្មវិធីគេហទំព័រនឹងជាប់គាំងនៅត្រង់នោះ ដោយមិនអាចធ្វើការឆ្លើយតបអ្វីទៅនឹងសំណើររបស់អ្នកចូលមើលគេហទំព័របានឡើយ។
មួយវិញទៀត នៅក្នុងកម្មវិធីខាងលើនេះ ក្បួនកណ្តាលត្រូវបានទៅប្រើរាល់លើកដែលកម្មវិធីខាងលើមានដំណើរការ ក៏ប៉ុន្តែបើយើងចង់អោយក្បួនកណ្តាលនេះត្រូវយកទៅប្រើប្រាស់តែនៅពេលណាដែលមានការចុចចូលមើលគេហទំព័រតាមអាស័យដ្ឋានណាមួយដ៏ជាក់លាក់នោះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var http = require('http'); var express = require('express'); var app = express(); var path = require('path'); var port = process.env.PORT || 3000; var indexRouter = require('./routes/index'); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); //ការយកក្បួនកណ្តាលមួយមកប្រើនៅក្នុងកម្មវិធី app.use('/about', function (req, res, next) { console.log('Time:', Date.now()); next() }); app.use('/', indexRouter); app.listen(port, function() { console.log('The server is running at port '+port); });

នៅលើបន្ទាត់លេខ 13 ការសរសេរថា app.use('/about', function (req, res, next) { គឺជាការយកក្បួនកណ្តាលមកប្រើ តែក្នុងករណីដែលមានចុចចូលមើលគេហទំព័រតាមអាស័យដ្ឋាន «/aout» តែប៉ុណ្ណោះ។
លើសពីនេះទៀត ក្រៅពីការប្រើប្រាស់ក្បួនកណ្តាលនៅក្នុងកម្មវិធីមេ យើងក៏អាចប្រើប្រាស់ក្បួននេះ នៅក្នុងឯកសារដែលជាសាស្ត្រាដាច់ដោយឡែកផ្សេងៗទៀតបានដែរ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
/* ./routes/index.js */ var express = require('express'); var router = express.Router(); //ការយកក្បួនកណ្តាលមួយមកប្រើនៅក្នុងកម្មវិធី router.use(function (req, res, next) { console.log('Time:', Date.now()); next(); }); router.get('/', function(req, res, next) { res.render('index'); }); module.exports = router;

នៅលើបន្ទាត់លេខ 6 ការសរសេរថា router.use(function (req, res, next) { គឺជាការយកក្បួនកណ្តាលមកប្រើរាល់លើកដែលក្បួនឈ្មោះ router() នៅក្នុងសាស្ត្រា index ត្រូវយកទៅប្រើ៕