បង្កើត​តម្រា KNB


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/ យើង​នឹងឃើញ​មាន​លទ្ធផល​ដូច​ខាង​ក្រោម​នេះ៖