cari

Rumah  >  Soal Jawab  >  teks badan

node.js - node - Perihal menulis app.js yang cantik

Saya seorang pemula dan saya mempunyai beberapa soalan tentang nod.
App.js saya kelihatan seperti ini:

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;

Andaikan terdapat 100 antara muka penghalaan, maka tidakkah saya perlu memerlukan 100 fail dalam aplikasi, dan kemudian mengkonfigurasinya 100 kali digunakan Saya sentiasa merasakan bahawa penulisan itu salah Jika saya ingin menulis pemuat statik, bagaimana patutkah saya menulisnya

我想大声告诉你我想大声告诉你2716 hari yang lalu870

membalas semua(3)saya akan balas

  • 怪我咯

    怪我咯2017-06-21 10:14:26

    Berikut ialah pendapat peribadi saya:
    1.app.js ialah fail permulaan perkhidmatan Ia tidak sepatutnya berurusan dengan laluan (laluan) dengan mengambil gambar subjek sebagai contoh, setiap kali saya ingin menambah yang baharu laluan, saya perlu Ubah suai app.js, dan app.js akan menjadi lebih panjang dan lebih panjang
    2 Dilampirkan penyelesaian saya untuk masalah ini

    // /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 Saya harap ia akan membantu pemilik topik

    balas
    0
  • 高洛峰

    高洛峰2017-06-21 10:14:26

    Penghalaan anda hendaklah dibahagikan kepada modul.
    Secara amnya satu modul dan satu js

    • Modul pengguna user.js /users/xxx

    • Pesan modul order.js /order/xxx
      ...

    Walaupun anda mempunyai 100 URL, secara amnya, tidak akan ada banyak modul 10 modul bukan lagi sistem kecil Nampak bagus apabila anda menulisnya seperti ini

    petua:

    express menghantar 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});
       
    });

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-21 10:14:26

    App.js biasanya menulis bahagian pertama url, dan menulis bahagian yang tinggal dalam js tertentu Contohnya, url ialah localhost:3000/use/index Untuk url ini, anda boleh menulis bahagian penggunaan url itu app.js , bahagian indeks ditulis dalam js tertentu, seperti a.js, kemudian kaedah penulisan dalam app.js ialah app.use('use',a), dan kemudian tulis router.get('/index ', fn), semasa mereka bentuk URL, anda boleh mereka bentuk separuh pertama URL tetap, seperti /use/index, /use/login, dsb., dan membetulkan penggunaannya, supaya hanya satu sahaja yang perlu ditulis dalam app.js.

    balas
    0
  • Batalbalas