node.js - node - À propos de l'écriture d'un magnifique app.js
我想大声告诉你
我想大声告诉你 2017-06-21 10:12:26
0
3
861

Je suis un débutant et j'ai quelques questions sur node.
Mon app.js ressemble à ceci :

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;

Supposons qu'il y ait 100 interfaces de routage, n'ai-je pas besoin d'exiger 100 fichiers dans l'application, puis de les configurer 100 fois en cours d'utilisation ? J'ai toujours l'impression que l'écriture est fausse, comment faire ? dois-je l'écrire ?

我想大声告诉你
我想大声告诉你

répondre à tous(3)
刘奇

Ce qui suit est mon opinion personnelle :
1.app.js est un fichier de démarrage de service. Il ne devrait pas trop traiter des itinéraires (itinéraires). En prenant la photo du sujet comme exemple, chaque fois que je veux en ajouter un nouveau. itinéraire, je dois modifier app.js, et app.js deviendra de plus en plus long
2 Vous trouverez ci-joint ma solution à ce problème

.
// /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. J'espère que cela aidera le propriétaire du sujet

小葫芦

Votre routage doit être divisé en modules.
Généralement un module et un js

  • Module utilisateur user.js /users/xxx

  • Module de commande order.js /order/xxx
    ...

Même si vous avez 100 URL, en général, il n'y aura pas beaucoup de modules. 10 modules, ce n'est plus un petit système Ça a l'air bien quand on l'écrit comme ça

.

astuces :
envois express json

router.get('/:id/:name/home', function (req, res, next) {
    var id = req.params.id;
    var name = req.params.name;
    res.json({name:name,id:id});
   
});
曾经蜡笔没有小新

App.js écrit généralement la première partie de l'URL et écrit la partie restante dans un js spécifique. Par exemple, une URL est localhost:3000/use/index. Pour cette URL, vous pouvez écrire la partie d'utilisation de l'URL. app.js , la partie index est écrite dans un js spécifique, tel que a.js, puis la méthode d'écriture dans app.js est app.use('use',a), puis écrivez router.get('/index ', fn), lors de la conception de l'URL, vous pouvez concevoir une première moitié fixe de l'URL, telle que /use/index, /use/login, etc., et corriger l'utilisation, de sorte qu'une seule doit être écrite app.js.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal