我已经用'expressjs'设置了一个NodeJS API。在我的代码中,我有一些类似的代码块,如下所示:
app.get('/api/my/path', (req, res) => {
doSomethingUseful();
});
所有这些请求都做不同的事情,因此被调用的函数也总是不同的。
我在问自己,这是否是在NodeJS中编写代码的好习惯。 如果有更好/更干净的方式编写所有这些路径,请告诉我如何或至少给我一个寻找它的地方,我将不胜感激。
编辑1:要明确:我问将很多'app.get(...)'写到一个源代码文件中是个好主意,还是有更好的方法?
答案 0 :(得分:3)
是的,比将所有路由写入一个文件有更好的方法。例如,假设您有用户路线和问题。
对于用户,您需要获取/设置/放入/删除个人资料,以及类似的问题。因此,您将创建以下文件夹结构:/api/users
和/api/questions
在/api/users
中,
const express=require('express')
const router=express.Router()
//this handles route: /users
router.get('/',(req,res)=>{})
//this handles route: /users/profile
router.get('/profile',(req,res){})
//this is to retrieve profile of specific user by user id :/users/profile/:userID
router.get('/profile/:userId',(req,res))
router.post('/profile',(req,res))
.
.
然后,在您的index.js或项目的入口点中,
const users=require('./api/users')
const questions=require('./api/questions')
app=require('express')
app.use('/users',users)
app.use('/questions',questions)
实际上,您说的是任何/users
路由,请参考users.js文件,如果是任何/questions
路由,请参考questions.js文件,依此类推
答案 1 :(得分:1)
您只需要执行两行代码,并让模块读取您的目录和文件结构即可处理所有app.use
路由调用,如下所示:
const magic = require('express-routemagic')
magic.use(app, __dirname, '[your route directory]')
对于那些想要手动处理的用户,只是不要使用将目录传递给Magic。