从NodeJS内部调用Express Route

我的API有ExpressJS路由,我想从NodeJS内调用它

var api = require('./routes/api')

app.use('/api', api);

在我的 文件中

var express = require('express');

var router = express.Router();

router.use('/update', require('./update'));

module.exports = router;

因此,如果我想/api/update/something/:withParam从前端调用其所有查找内容,但是我需要从NodeJS脚本的另一个方面进行调用,而不必在第二个位置再次重新定义整个函数

我曾尝试从内部使用HTTP模块,但出现“ ECONNREFUSED”错误

http.get('/api/update/something/:withParam', function(res) {

console.log("Got response: " + res.statusCode);

res.resume();

}).on('error', function(e) {

console.log("Got error: " + e.message);

});

我了解Express背后的想法是创建路线,但是如何在内部调用它们

回答:

处理此问题的“常规”或“正确”方法是让您要调用的函数本身脱离所有路由定义。也许在自己的模块中,但不一定。然后在任何需要的地方调用它。像这样:

function updateSomething(thing) {

return myDb.save(thing);

}

// elsewhere:

router.put('/api/update/something/:withParam', function(req, res) {

updateSomething(req.params.withParam)

.then(function() { res.send(200, 'ok'); });

});

// another place:

function someOtherFunction() {

// other code...

updateSomething(...);

// ..

}

以上是 从NodeJS内部调用Express Route 的全部内容, 来源链接: utcz.com/qa/413052.html

回到顶部