gpt4 book ai didi

javascript - ExpressJs 中间件导入后不工作

转载 作者:行者123 更新时间:2023-12-03 01:00:05 27 4
gpt4 key购买 nike

这是我的 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;

尝试在server.js中导入这个app.js

import app from './app';

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

如果我在 server.js 中使用,“/v1.0”中间件将无法工作,但如果我在 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');
});

最佳答案

不要尝试在 server.js 中使用 app.js(我假设这是您定义所有其余映射的 js),而是在 app.js 中使用 server.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()
});
}

关于javascript - ExpressJs 中间件导入后不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52663587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com