这是使用
的代码 webserver.js中的
var objApiServer = require('./node_scripts/ApiServer');
app.use('/APICalls/', objApiServer);
和ApiServer.js
module.exports = function (router, request) {
//FUNCTION
router.get('/GetDbData', function (req, res) {
/* SAMPLE CODE GOES HERE */
});
}
on url path
// mysite.domain / APICALLS / GetDbData
工作正常
但它适用于
// mysite.domain / GetDbData(我不想要)
我错过了什么。如果我想要另一个功能
怎么办?表示//mysite.domain/GetDbData
我把另一个函数放在webserver.js中,带
app.get('/GetDbData' .......
但它没有接到任何电话
答案 0 :(得分:1)
这是演示代码。请尝试以这种方式实现:
在webserver.js中 -
var express = require('express');
var objApiServer = require('./router/ApiServer');
var app = express();
app.use('/APICalls/', objApiServer);
app.listen(3000);
在ApiServer.js中 -
var express = require('express');
var router = express.Router();
router.get('/GetDbData', function(req, res, next) {
/* SAMPLE CODE GOES HERE */
res.send("GetDbData route called");
});
module.exports = router;
以下是上述代码段输出的屏幕截图:
答案 1 :(得分:0)
而不是传递公共路由器对象。您可以在每个路由文件中创建一个新的路由器对象,例如ApiServer.js,ApiServer1.js等。
以下是相同的代码段:
在webserver.js
中var objApiServer = require('./node_scripts/ApiServer');
var objApiServer1 = require('./node_scripts/ApiServer1');
app.use('/APICalls', objApiServer(router, request));
app.use('/GetDbData', objApiServer1(router, request));
在ApiServer.js
module.exports = function (router, request) {
//FUNCTION
return new express.Router()
.get('/GetDbData', function (req, res) {
/* SAMPLE CODE GOES HERE */
})
.post('/PostDbData', function (req, res) {
/* SAMPLE CODE GOES HERE */
});
}
在ApiServer1.js
module.exports = function (router, request) {
//FUNCTION
return new express.Router()
.put('/UpdateDbData', function (req, res) {
/* SAMPLE CODE GOES HERE */
});
}
答案 2 :(得分:0)
我解决了这个问题,我在这里发布了我的答案。我有多条路线,其中一条就像
app.use('/APICalls/', objApiServer);
app.use('/RouterA', objRouterA);
app.use('/', objRouterB);
最后一条路线是问题。它可以在没有完整路径的情况下调用任何路由器功能。所以,如果我打电话
// mysite.domain / APICALLS / func1APICalls
和
// mysite.domain / func1APICalls
它将被路由到“objApiServer”
中的相同功能将最后一行更改为
app.use('/B/', objClassA);
解决了问题