Я пытаюсь организовать свой импорт и все маршруты в одном файле.Я не могу заставить его работать.Если вы обнаружите какие-либо проблемы с кодом, дайте мне знать, что я открыт для обратной связи, так как я только начал изучать узел.Я ищу лучшее практическое решение или что-то обычно используемое, более легкое в обслуживании и развитии.
мой app.js экспресс-сервер:
'use strict';
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const bodyParser = require('body-parser');
const fs = require('fs');
const session = require('express-session');
const redis = require('redis');
const mongoose = require('mongoose');
const redisStore = require('connect-redis')(session);
const client = redis.createClient();
const app = express();
const _UTILS = require('./application/_UTILS');
const db = JSON.parse(fs.readFileSync('/srv/webkb_mean/config/configFiles/database.json', 'utf8'));
mongoose.connect('mongodb://' + db['mongodb']['url'] + '/webKB-main');
mongoose.Promise = global.Promise;
app.use(session({
secret: _UTILS.getHashedValue(),
// create new redis store.
store: new redisStore({
host: 'localhost',
port: 6379,
client: client,
ttl: 36000
}),
saveUninitialized: false,
resave: false
}));
// 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(bodyParser.urlencoded({
extended: true
}))
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname, 'views')));
app.engine('html', require('ejs').renderFile)
// 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');
// });
//
require('./config/router')(app);
module.exports = app;
Мой файл роутера:
module.exports = (app) => {
app.use('/', require('./../routes/index'));
//LOGIN MODULE:
app.use('/login', require('./../routes/LOGIN/login'));
app.use('/signin', require('./../routes/LOGIN/signin'));
app.use('/forgotpassword', require('./../routes/LOGIN/forgotPassword'));
}
Stacktrace:
NotFoundError: Not Found
at /srv/webkb_mean/app.js:57:10
at Layer.handle [as handle_request] (/srv/webkb_mean/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/srv/webkb_mean/node_modules/express/lib/router/index.js:317:13)
at /srv/webkb_mean/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/srv/webkb_mean/node_modules/express/lib/router/index.js:335:12)
at next (/srv/webkb_mean/node_modules/express/lib/router/index.js:275:10)
at SendStream.error (/srv/webkb_mean/node_modules/serve-static/index.js:121:7)
at emitOne (events.js:116:13)
at SendStream.emit (events.js:211:7)
at SendStream.error (/srv/webkb_mean/node_modules/send/index.js:270:17)
at SendStream.onStatError (/srv/webkb_mean/node_modules/send/index.js:421:12)
at next (/srv/webkb_mean/node_modules/send/index.js:764:28)
at /srv/webkb_mean/node_modules/send/index.js:772:23
at FSReqWrap.oncomplete (fs.js:152:21)