gpt4 book ai didi

javascript - 在导出模块中传递多个参数

转载 作者:行者123 更新时间:2023-12-03 05:13:08 24 4
gpt4 key购买 nike

我想在modules.exports中传递多个参数。我的代码是这样的:

以下文件是index.js的代码片段

var express        = require('express');
var app = express();
var number = 100;
require('./app/routes')(app, number); // pass our application into our routes

以下是routes.js的代码片段

module.exports = function(app, number){

app.get('/api/control', function(req,res){
res.send("done");
});

app.post('/api/control', function(req,res){
console.log(number);
console.log(req.body);
res.send("done");

});

}

问题是,每当发出 POST 请求时,console.log(number); 都会在终端上打印 undefined ,就像我在替换 时打印的那样numberconsole.log() 中的 app 会打印 app 的所有函数。

我还尝试切换 appnumber 的位置,然后抛出 app 不存在的错误。

最佳答案

如果您只想传递变量,为什么不简单地将其添加到应用程序对象中。

var express        = require('express');
var app = express();
app.myNumber = 100;
require('./app/routes')(app); // pass our application into our routes

然后在routes.js中:

module.exports = function(app){

app.get('/api/control', function(req,res){
res.send("done");
});

app.post('/api/control', function(req,res){
console.log(app.myNumber);
console.log(req.body);
res.send("done");

});

}

编辑:

以下代码将用于传递变量:

app.js:

var express        = require('express');
var app = express();
var number = 100;
require('./app/routes')(app, number);

要在函数内传递变量,您必须绑定(bind)它。

module.exports = function(app, number){

app.get('/api/control', function(req,res){
res.send("done");
});

app.post('/api/control', function(req,res){
console.log(number);
console.log(req.body);
res.send("done");

}.bind(number));

}

关于javascript - 在导出模块中传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com