1
我想設置我的快遞路由具有以下結構快速路由分離 -
src
|-app.js
|-api
|-v1
|-index.js
|-users
|-routes.js
|-controller.js
|-tests.js
|-currency
|-routes.js
|-controller.js
|-tests.js
的想法是讓一起包含在API的各個部分。
我希望index.js能夠基本識別它所屬目錄的子文件夾中的所有routes.js文件,並根據需要將它們加入到express路由器中,然後通過app.js將其作爲適當版本的API。
app.js
app.use('/api/v1', require('./api/v1'));
API/V1/index.js
/*jslint node: true */
"use strict";
var express = require('express');
var router = express.Router();
var fs = require('fs');
fs.readdirSync(__dirname).forEach(function(file) {
// Remove extension from file name
var basename = file.split('.')[0];
// Only load files that aren't directories and aren't blacklisted
if (fs.lstatSync(__dirname + '/' + file).isDirectory()) {
console.log("api: " + '/' + basename + ' file: ./' + file + '/routes.js');
router.use('/' + basename, require('./' + file + '/routes.js'));
}
});
module.exports = router;
API/V1 /貨幣/ routes.js
/*jslint node: true */
"use strict";
// *******************
// Currency Routes
// *******************
var express = require('express');
var router = express.Router();
router.get('/currency', function (req, res) {
res.send('Currency List Page');
});
router.get('/currency/:id', function (req, res) {
res.send('Currency Page: ' + req.params.id);
});
module.exports = router;
我試着調試它與DEBUG模塊一起,可以看到快速識別路線。
C:\DevelopmentOE\Node\src>set DEBUG=express:* & node ./bin/www.js
express:application set "x-powered-by" to true +0ms
express:application set "etag" to 'weak' +3ms
express:application set "etag fn" to [Function: wetag] +2ms
express:application set "env" to 'development' +0ms
express:application set "query parser" to 'extended' +0ms
express:application set "query parser fn" to [Function: parseExtendedQueryString] +1ms
express:application set "subdomain offset" to 2 +0ms
express:application set "trust proxy" to false +0ms
express:application set "trust proxy fn" to [Function: trustNone] +1ms
express:application booting in development mode +0ms
express:application set "jsonp callback name" to 'callback' +0ms
express:router use '/' query +16ms
express:router:layer new '/' +0ms
express:router use '/' expressInit +1ms
express:router:layer new '/' +0ms
express:router use '/' jsonParser +0ms
express:router:layer new '/' +0ms
express:router use '/' urlencodedParser +4ms
express:router:layer new '/' +1ms
api: /currency file: ./currency/routes.js
express:router:route new '/currency' +5ms
express:router:layer new '/currency' +1ms
express:router:route get '/currency' +0ms
express:router:layer new '/' +1ms
express:router:route new '/currency/:id' +0ms
express:router:layer new '/currency/:id' +1ms
express:router:route get '/currency/:id' +0ms
express:router:layer new '/' +0ms
express:router use '/currency' router +1ms
express:router:layer new '/currency' +0ms
api: /users file: ./users/routes.js
express:router:route new '/user' +3ms
express:router:layer new '/user' +0ms
express:router:route get '/user' +1ms
express:router:layer new '/' +0ms
express:router:route new '/user/:id' +0ms
express:router:layer new '/user/:id' +0ms
express:router:route get '/user/:id' +1ms
express:router:layer new '/' +0ms
express:router use '/users' router +0ms
express:router:layer new '/users' +1ms
express:router use '/info' <anonymous> +0ms
express:router:layer new '/info' +1ms
express:router use '/api/v1' router +0ms
express:router:layer new '/api/v1' +0ms
express:router use '/' <anonymous> +1ms
express:router:layer new '/' +0ms
express:router use '/' <anonymous> +0ms
express:router:layer new '/' +1ms
express:application set "port" to 3000 +3ms
然而,當我嘗試訪問http://localhost:3000/api/v1/currency我得到以下{ 「消息」: 「未找到」, 「錯誤」:{ 「地位」:404}}。
任何人有任何想法/建議。
感謝
保羅
我知道了。謝謝您的幫助。我只是看不到它。 –