Как управлять кодом NodeJs приложения, чтобы уменьшить беспорядок - PullRequest
1 голос
/ 19 июня 2020

H ie,

Я разрабатываю веб-приложение Nodejs (Express) и в значительной степени новичок в этой технологии. Пока я вижу, что может быть только одна моя точка входа - это мой файл server.js. Теперь кажется, что все запросы и / или процессы должны быть инициированы здесь, что хорошо для небольшого приложения, но на моем сайте уже есть около 25 маршрутов страниц, все запросы должны обрабатываться здесь. У меня также есть около десятка Ajax запросов, обрабатываемых здесь. Теперь, несмотря на то, что я обрабатываю различные функции, например операции CRUD в отдельных файлах, я все еще опасаюсь, что в какой-то момент мой код станет нечитаемым, поскольку сервер. js файл становится длиннее

const express = require("express")
const path = require("path")
const exphbs = require("express-handlebars")

let app = express()

app.set("views",path.join(__dirname,'templates'))
app.engine('handlebars',exphbs({defaultLayout:'main'}))
app.set('view engine','handlebars')

app.set('port',(process.env.PORT || 3000));

app.get('/',(req,res)=>{
    res.render('home',{'title':'Home'});
});
app.get('/home',(req,res)=>{
    res.render('home',{'title':'Home'});
});
app.get('/register',(req,res)=>{
    res.render('register',{'title':'Register'});
});
app.use(express.static(path.join(__dirname, '/public')));

app.listen(app.get('port'),()=>{
    console.log(`Server started on port : ${app.get('port')}`)
})

Пока что мой сервер. js это так мало, но меня просто осенило, что у меня 25 страниц и несколько процессов Ajax на каждой.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Да, вам нужно структурировать свои маршруты. Для этого вам нужно посмотреть на Express Router. Вы должны создать разные файлы маршрутов на основе указанного ресурса c.

/ routes / homeRoutes. js

const express = require("express");
const router = express.Router();
router.get('/',(req,res)=>{
       res.render('home',{'title':'Home'});
});

module.exports = router;

сервер. js

const homeRoutes = require("./routes/homeRoutes");
app.use("/api/v1/home", homeRoutes);

Кроме того, посмотрите следующие ссылки для лучшего понимания структуры проекта и express маршрутизатора.

1 голос
/ 19 июня 2020

Я думаю, что вы ищете разбиение кода на локальные модули. Вы можете поместить части вашего кода в отдельные файлы, включить module.exports в конце, а затем require(./filename.js) их на вашем сервере. js.

Здесь вы можете увидеть пример: https://www.tutorialsteacher.com/nodejs/nodejs-local-modules

...