如何在ExpressJS中的不同文件中创建自己的异步函数

How to create an own asynchronous function in a different file in Express JS

本文关键字:创建 文件 自己的 函数 异步 ExpressJS      更新时间:2023-09-26

我想编写自己的函数,例如:

own_function.js:

module.exports = function(req, res, next){
 var js_object;
 // Do some stuff with above javascript object
 // After I want to attach "js_object" to request object:
 req.js = js_object;
 next();
 // also tried next(req, res);
}

我想在不同的文件中使用这个函数,例如"main.js"文件:

main.js:

var own_function = require(__dirname + '/own_function');
own_function(req, res, function(){
// Also tried own_function(req, res, function(req, res){
console.log(req.js_object);
});

它不起作用我得到了未定义的对象。我认为这只是语法问题,但我不知道什么是正确的语法,请帮助我。谢谢。

main.js中,您调用console.log(req.js_object);,但在own_function.js中,您设置的是req.js,而不是req.js_object。这两件事需要匹配。我建议更改main.js:

var own_function = require(__dirname + '/own_function');
own_function(req, res, function(){
    console.log(req.js); // was req.js_object
});