提问人:Alpha 提问时间:11/15/2023 最后编辑:Alpha 更新时间:11/16/2023 访问量:44
为什么这个文件夹结构会破坏我的 NodeJs 代码?
Why this folder structre breaking my NodeJs code?
问:
我构建了一个 node js 项目,后来尝试重新排列代码以根据我的新要求制作文件夹结构。
较旧的结构
|-controller
| |--docController.js
|-index.js
较新的文件结构
|-adapter/express
| |--controller
| |---docController.js
|-route
| |--docRoute.js
|-frameworks
| |--app.js
| |--server.js
使用新结构,我不得不在代码中进行一些更改,例如将路由从 index.js 分离到专用路由 .js。将索引 .js 拆分为服务器和应用程序 .js
现在我的服务器正在运行,但每当我点击我的 API 时,它都无法找到路由。
App.js
const docRoutes = require('./../adapters/express/routes/docRoutes');
const app = express();
app.use('/', docRoutes);
// app.all('*', (req, res, next) => {
// next(new AppError(`Can't find ${req.originalUrl} on this server!`, 404));
// });
module.exports = app;
服务器.js
const app = require('./app');
const dotenv = require('dotenv');
dotenv.config({ path: './../config.env' });
const port = process.env.PORT;
const server = app.listen(port, () => {
console.log(`App running on port ${port}...`);
});
process.on('unhandledRejection', err => {
console.log('UNHANDLED REJECTION! 💥 Shutting down...');
console.log(err.name, err.message);
server.close(() => {
process.exit(1);
});
});
docController.js
const axios = require('axios');
const FormData = require('form-data');
const dotenv = require('dotenv');
dotenv.config({ path: './../../../config.env' });
SOME CONST VARIABLES FROM dotenv
const fs = require('fs')
function findValueByKey(obj, targetKey) {
SOME BORING CODE
}
exports.getAccessToken = async (req, res, next) => {
SOME BORING CODE
}
FOLLOWED BY FEW EXPORTED FUNCTIONS
文档路由.js
const express = require('express');
const docController = require('./../controllers/docController');
const router = express.Router();
router.get('/get',docController.getAccessToken);
router.post('/create',docController.getAccessToken,docController.createDoc);
router.post('/submit',docController.getAccessToken,docController.addTagsAndSend);
router.get('/preview',docController.getAccessToken,docController.previewDoc);
module.exports = router;
该代码早些时候可以工作,但现在它介于应用程序和路由之间。有 Node js 经验的人能找到问题吗?
答:
0赞
Alpha
11/16/2023
#1
事实证明,/create 没有 get 处理程序。我只需要在电话后打它,它就开始工作了
评论
app.use(docRoutes);
/create
GET
/get