emilov
@emilov
Фрилансер

Структура файлов по проекту?

С недавнего времени начал изучать Node, фреймоворк ExpressJS... задался вопросом по структуре файлов проекта, сделал вот такую вот сборку, нужно ваше мнения.. или есть готовые решении?

backend
. . . controllers
. . . . . . posts.controller.js
. . . models
. . . . . . posts.models.js
. . . db.js
. . . router.js
. . . server.js


posts.models.js
const mongoose = require('mongoose');

const postsSchema = mongoose.Schema({
    title: String,
    description: String,
    date: {
        type: Date,
        default: Date.now()
    }
});

module.exports = mongoose.model('posts', postsSchema);


posts.controller.js
const Posts = require('../models/posts.models');

exports.module = {
    async post (req, res) {
        const post = new Posts({
            title: req.body.title,
            description: req.body.description
        });

        await post.save();

        res.json({
            message: 'created',
            data: post
        })
    },

    async all (req, res) {
        const posts = await Posts.find()
        res.json({
            data: posts
        })
    }
};


router.js
const load = (controller) => require(`./controllers/${controller}.js`);

module.exports = function (app) {
    app.get('/', load('posts.controller').module.all);
    app.post('/posts', load('posts.controller').module.post);
};


server.js
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const db = require('./db');

const app = express();

app.use(cors());
app.use(bodyParser.json());

require('./router')(app);


db.connect('mongodb://localhost:27017/blog', (err) => {
    if (err) return console.log(err);
    app.listen('3000', () => console.log('Server started'))
});
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект