node.js - node -关于书写优美的app.js

查看:116
本文介绍了node.js - node -关于书写优美的app.js的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

刚入手的小白,有些关于node的问题想请教下.
我的app.js长这样:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//api
var a_api = require('./routes/api/a');
var b_api = require('./routes/api/b');
var c_api = require('./routes/api/c');
var d_api = require('./routes/api/d');

app.use('/api', [a_api, b_api, c_api, d_api]);

a.js

var express = require('express');
var router = express.Router();
var async = require('async');

router.get('/:id/:name/home', function (req, res, next) {
    var id = req.params.id;
    var name = req.params.name;
    res.writeHead(200, {'Content-Type': 'application/json'});
    res.end(JSON.stringify({'id':id,'name':name}));
   
});

module.exports = router;

假设现在有100个路由接口,那我岂不是要在app中require100个文件,然后在use中配置100次?总感觉写的不对,如果要写一个静态的加载器,那么要怎么写?

解决方案

以下是个人见解:
1.app.js 是服务启动文件,不应该过多的去处理路由(routes),以题主的图片来讲,每当我要添加一个新的route,都需要去修改app.js,而app.js则会越来越长
2.附上本人解决这个问题的方案

// /app.js -- 项目启动文件
// import routes
const api = require('./routes/index')
// set baseUrl
app.use('/api', api) // '/api' 作为根地址,只需定义一次

// /routes/index.js -- 定义所有的路由
const router = require('express').Router()

// defined api list -- 每一行对应一个文件
router.use('/login', require('./login')) // 该路由的根地址 '/login'
router.use('/register', require('./register')) // 该路由的根地址 '/register'
// ...

module.exports = router

// /routes/login.js -- 路由具体实现
const router = require('express').Router()

// 实际api地址 /api/login
router.post('/', function (req, res, next) {
  res.json('do something...')
})

// 实际api地址 /api/login/auth
router.post('/auth', function (req, res, next) {
  res.json('do something...')
})

module.exports = router

3.希望对题主有所帮助

这篇关于node.js - node -关于书写优美的app.js的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆