
var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); app.use('/users', usersRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;ខាងលើនេះ គឺកម្មវិធីគោលនៅក្នុងកម្មវិធីគេហទំព័ររប់សយើង ដែលត្រូវបានបង្កើតឡើងជាស្វ័យប្រវត្តិ ដោយកញ្ចប់ express-application ដែលយើងទើបនឹងដំឡើងនៅពេលថ្មីៗនេះ។
នៅលើបន្ទាត់លេខ 13 ការសរសេរថា app.set('views', path.join(__dirname, 'views')); គឺជាការកំណត់ផ្លូវទៅកាន់ថតឈ្មោះ views ដែលនៅក្នុងនោះមានឯកសារផ្សេងៗសំរាប់ផ្គំគ្នាបង្កើតជាគេហទំព័រទាំងមូល។ បន្ទាប់ពីការកំណត់ផ្លូវនេះរួច រាល់ការយកយកឯកសារនៅក្នុងថតនោះមកប្រើ មិនទាមទារអោយយើងសរសេរអាស័យដ្ឋានទៅកាន់ថតនោះទៀតឡើយ គឺយើងគ្រាន់តែសរសេរឈ្មោះរប់សឯកសារនៅក្នុងថតនោះ គឺជាការស្រេច។
នៅលើបន្ទាត់លេខ 14 ការសរសេរថា app.set('view engine', 'ejs'); គឺជាការយកកំណត់យកភាសា EJS សំរាប់បញ្ជូលទិន្នន័យទៅក្នុងទំព័រផ្សេងៗ។
នៅលើបន្ទាត់លេខ 20 ការសរសេរថា app.use(express.static(path.join(__dirname, 'public'))); គឺជាការកំណត់ផ្លូវទៅកាន់ថតឈ្មោះ public ដែលនៅក្នុងនោះ ឯកសារទាំងឡាយនឹងត្រូវយកទៅប្រើផ្ទាល់តែម្តង ដោយមិនចាំបាច់សរសេរអាស័យដ្ឋានទៅកាន់ថតនោះឡើយ។ លើសពីនេះទៀត បណ្តាឯកសារនៅក្នុងថតនេះ នឹងត្រូវអាចបើកមើលបានដោយផ្ទាល់ ពីសំណាក់អ្ននចូលមើលគេហទំព័រ។
ក្រោយពីមានផ្នែកទន់ចាំបាច់បានសព្វគ្រប់អស់ហើយ យើងត្រូវបង្កើតឯកសារដែលជាតម្រា KNB ផ្ទាល់តែម្តង ដោយបង្កើតឯកសារមួយមានឈ្មោះថា knb.js ទុកនៅក្នុងថតឈ្មោះ routes ជាមួយនឹងឯកសារឈ្មោះ index និង users ។

ជាកិច្ចចាប់ផ្តើម យើងអាចបង្កើតទិន្នន័យមួយចំនួនទុកនៅក្នុងតម្រា KNB របស់យើង សំរាប់យកទៅប្រើប្រាស់នៅក្នុងឯកសារផ្សេងៗទៀតនៅក្នុងកម្មវិធីគេហទំព័ររប់សយើង មានដូចជាឯកសារឈ្មោះ index.js ជាដើម៖
//បង្កើតទិន្នន័យសំរាប់សរសេរនៅលើគេហទំព័រ var data = {}; data.title = 'កម្មវិធីគេហទំព័រ KNB'; module.exports = { options:data, }បន្ទាប់មកទៀត ដើម្បីយកទិន្នន័យនៅក្នុងតម្រា KNB របស់យើងទៅប្រើប្រាស់នៅក្នុងឯកសារ index.js យើងត្រូវធ្វើការកែតម្រូវនៅក្នុងនោះដូចខាងក្រោមនេះ៖
var express = require('express'); var router = express.Router(); var knb = require('./knb'); //បង្កើតទំព័រមុខ router.get('/', function(req, res, next) { res.render('index', knb.options); }); module.exports = router;នៅលើបន្ទាត់លេខ 4 ការសរសេរថា var knb = require('./knb'); គឺជាការប្រើបញ្ជា require ដើម្បីយកតម្រា KNB នៅក្នុងថតជាមួយគ្នាមកប្រើដោយដាក់ឈ្មោះអោយវាថា «knb» ។
នៅលើបន្ទាត់លេខ 8 ការសរសេរថា res.render('index', knb.options); គឺជាការយកក្បួនឈ្មោះ render មកប្រើដើម្បីបង្កើតទំព័រមុខ ដែលជាឯកសារឈ្មោះ index.ejs នៅក្នងថតឈ្មោះ views ដោយយកទិន្នន័យនៅក្នុងតម្រា KNB ទៅបញ្ចូលនៅក្នុងឯកសារនោះ។
ជាលទ្ធផល បើយើងដំណើរការកម្មវិធីគេហទំព័ររប់សយើង ហើយចូលមើលគេហទំព័រដែលមានអាស័យដ្ឋានជា http://localhost:3000/ យើងនឹងឃើញមានលទ្ធផលដូចខាងក្រោមនេះ៖
