我有这个问题
route.setRouter (应用程序) TypeError: route.setRouter不是命令中的函数,这是我的app.js
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const app = express();
const mongoose = require('mongoose');
const appConfig = require('./config/appConfig');
const socketLib = require('./app/libs/socketLib');
mongoose.set('useCreateIndex', true);
app.use(bodyParser.json());
// require routes
const routesPath = './app/routes'
fs.readdirSync(routesPath).forEach(file => {
if (~file.indexOf('.js')) {
let route = require(routesPath + '/' + file);
route.setRouter(app);
}
});而且我已经安装了express
发布于 2020-10-07 22:44:32
我认为您应该反过来设置路由,即通过app.use(router)
例如,如果您的路由器模块包含以下内容:
/* router-test.js */
const express = require('express')
const router = express.Router()
router.get('/test', function (req, res) {
res.send('Test from router')
})
module.exports = router;然后,您可以按如下方式设置路由器:
const testRouter = require('./router-test');
...
app.use(testRouter);
// alternatively you can plug your router in beneath a path:
app.use('/somePath', testRouter);因此,在您的示例中,您可能应该这样做(请注意,我已经用简单得多的.includes()更改了逐位~和.indexOf() ):
fs.readdirSync(routesPath).forEach(file => {
if (file.includes('.js')) {
let route = require(routesPath + '/' + file);
app.use(route);
}
});https://stackoverflow.com/questions/64244892
复制相似问题