Промежуточное программное обеспечение ExpressJs не работает после импорта - PullRequest
0 голосов
/ 05 октября 2018

Это мой app.js

import path from 'path';
import bodyParser from 'body-parser';
import express from 'express';

import defender from 'inflex-defend-api';

import { key, secret } from './config/app';

let apiDefender = defender(key, secret);

var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static('public'))

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(apiDefender.defend(false));

export default app;

Попробуйте импортировать этот app.js в server.js

import app from './app';

app.use('/v1.0', function (req, res, next) {
    console.log('Request Type:', req.method)
    //next()
});

Промежуточное ПО '/v1.0' не работает, если яиспользовать в server.js, но если я использую в app.js, это хорошо.

Как я могу использовать промежуточное ПО из app.js, если я не буду определять их в маршрутах.

Например (я этого не хочу):

app.post('/v1.0/api/ahri', function (req, res, next) { 
   console.log('Request Type:', req.method); 
   next(); 
}, function (req, res, next) {
   console.log('I know the request type');
}); 

1 Ответ

0 голосов
/ 05 октября 2018

Вместо того, чтобы пытаться использовать app.js в server.js (я предполагаю, что это ваш js, в котором вы определяете все остальные отображения), используйте server.js в app.js

app.js

import path from 'path';
import bodyParser from 'body-parser';
import express from 'express';

import defender from 'inflex-defend-api';

import { key, secret } from './config/app';

let apiDefender = defender(key, secret);

var app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static('public'))

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(apiDefender.defend(false));

require('./server)(app);

export default app;

server.js

module.exports = (app) => {
    app.use('/v1.0', function (req, res, next) {
        console.log('Request Type:', req.method)
        //next()
    });
}
...