នៅក្នុងកម្មវិធី 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 ត្រូវយកទៅប្រើ៕













