我正在使用node.js中的express进行APi。
的Controler:
$wpf.startButton.Add_Click({
write-output "This message is not shown"
})
路线:
/**
* @module QuestionController
*/
//1st Action
exports.videoUploaded = function(req,res)
{
// myCode();
}
//2nd Action
exports.transcribe = function(req, res)
{
var id = req.params.question_id;
// myCode();
}
我的服务器文件:
var questionController = require('./../controllers/question');
var apiRouter = express.Router();
apiRouter.route('/questions/:question_id/video_uploaded')
.post(Auth.roleAtLeastPatient,questionController.videoUploaded);
apiRouter.route('/questions/:question_id/transcribe')
.post(Auth.roleAtLeastPatient,questionController.transcribe);
一切正常,我可以从浏览器和邮差中调用这些端点。但是,在发送var app = require('./srv/express-app');
var webserver = http.createServer(app);
参数时,如何从transcribe
动作内部调用videoUploaded
动作。
答案 0 :(得分:-1)
如何导出
//1st Action
videoUploaded(req,res){
// myCode();
}
//2nd Action
transcribe(req, res) {
// myCode();
videoUploaded(...);
}
exports default {
videoUploaded,
transcribe,
};
如何使用
import funcs from 'Questions';
apiRouter.route('/questions/:question_id/video_uploaded')
.post(Auth.roleAtLeastPatient, funcs.videoUploaded);
在您的情况下,您会创建函数并将它们直接存储到module.exports中。因此,您在声明它的文件中没有可用的内容(videoUploaded在转录中不可用)。
我所做的是在文件中声明新功能,因此他们的范围是文件(videoUploaded可以调用转录)。然后我们将指针导出到文件中的函数,这样你就可以从外面调用它们了。
更好的解决方案是使用ES6类,例如:
export default class Controller {
static videoUploaded() {
// I can call other methods like :
Controller.transcribe(...);
}
static transcribe() {
}
}
然后使用它:
import Controller from 'Controller';
apiRouter.route('/questions/:question_id/video_uploaded')
.post(Auth.roleAtLeastPatient, Controller.videoUploaded);