Как можно манипулировать этим маршрутом получения, чтобы получить доступ к другим моим частям сервера?

#node.js #express

#node.js #экспресс

Вопрос:

Можно ли этим манипулировать, чтобы получить другие части сервера?

 const downloadRoot = './uploads/'
app.get("/uploads/:id", (req, res) => {
    const fullPath = path.resolve(path.join(downloadRoot, req.params.id));
    res.download(fullPath, (err) => {
        if (err) {
            console.log(err);
        }
    })
});
 

Ответ №1:

Я приведу вам пример с моделями БД.

У вас есть index.js в папке /models с

 const mongoose = require('mongoose');
mongoose.Promise = global.Promise;

const db = {};

db.mongoose = mongoose;

db.token = require("./token.model");
db.user = require("./user.model");

module.exports = db;
 

Тогда вы можете получить доступ (не манипулировать /models/index.js ). В противном случае вы можете изменить экземпляр в каждом файле .js

Пример в app.js

 require("dotenv").config();

const db = require("./db/models");

db.mongoose
    .connect(process.env.DB_URL, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        createIndexes: true
    })
    .then(() => {
        console.log("Successfully connect to MongoDB.");
    })
    .catch(err => {
        console.error("Connection error", err);
        process.exit();
    });
 

module.exports делает это