gpt4 book ai didi

node.js - 只能访问路由层次结构中的一条路由

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:15 24 4
gpt4 key购买 nike

我正在尝试直接从请求访问路由,即使另一个子文件夹可以工作,而另一个子文件夹却不能。反复抛出404错误。 /api/getPostList 可以工作,但 /post//post/:title 不起作用。

我重组了代码,尝试将其从 get 请求更改为 post 请求,添加了 /post/:title 来访问单个帖子,或者不添加 / 来访问主列表。

Server.js 包含

app.use('/', Routes);

routes/index.js 包含

const router = require('express').Router();
const posts = require('./posts');
const api = require('./api');

router.use('/post', posts);
router.use('/api', api);

module.exports = router;

routes/api/index.js 包含

Api.get('/getPostList', (req, res) => {
PostModel.find(function (err, post) {
if (err) return console.log('error: ' + err);
return res.json({ postList: post});
});
console.log("Attempted to get post list on /getPost/ route: " + ++postRouteCnt);
});

Api.get('/getPost/:title', getPost);
module.exports = Api;

routes/post/index.js 包含

const Posts = require('express').Router();
const post = require('./post');
const PostModel = require('../../../server/models.js');

let postRouteCnt = 0;
Posts.get('/', (req, res) => {
PostModel.find(function (err, post) {
if (err) return console.log('error: ' + err);
return res.json({ postList: post});
});
console.log("Attempted to get post list on /post/ route: " + ++postRouteCnt);
});

Posts.get('/:title', post);

module.exports = Posts;

当调用 /post/ 时,当我应该收到 json 响应时,我收到 404 Cannot GET/post/

编辑:文件夹结构

 Server/

routes/

api/

index.js

getPost.js (for individual post)

posts/

index.js

post.js (for individual post)

server.js

最佳答案

根据你的结构文件夹,我尝试用简单的代码编写代码

应用程序.js:

const express = require('express')
const app = express()
const port = 3000
const Routes = require('./routes/posts/index.js');

app.use('/', Routes);

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

.routes/posts/index.js :

const express = require('express');
const router = express.Router();
const postController = require('./post');

// GET /
router.get('/posts', postController.getPosts);

module.exports = router;

.routes/posts/post.js :

exports.getPosts = (req,res) => {
res.send('test');
}

尝试输入http://localhost:3000/posts及其工作

您可以在 .routes/posts/post.js 中编写任何逻辑:

关于node.js - 只能访问路由层次结构中的一条路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165467/

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