Rumah > Soal Jawab > teks badan
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
怪我咯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
高洛峰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});
});
曾经蜡笔没有小新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.