【问题标题】:pass parameter function Node.js from one js to another将参数函数 Node.js 从一个 js 传递到另一个
【发布时间】:2017-03-26 09:35:48
【问题描述】:

我正在尝试将函数响应从一个 Node.js 脚本传递到另一个

这是我正在尝试的。 索引.js

var express = require('express');

require('./meter');

var app = express();

app.get('/',function(req,res){
    return;                    //hi function from another file
})

app.listen(3000);
console.log('listening on 3000 port')

meter.js

module.exports = {

    hi: function(req, res) {
        return res.status(200).json({"message" : "Hello V1"});
    }
};

是否只需要函数才能完成这项工作?

提前致谢。

【问题讨论】:

  • 是的。但是您必须将hi 导出到meter.js 中,并且您必须像使用express 一样使用它。
  • 感谢@PratikGaikwad。但我明白你在说什么,但不知道该怎么做。请问你能在Answer里写一点代码吗
  • 请参阅下面 Nir ​​Levy 发布的答案。

标签: javascript json node.js function express


【解决方案1】:

Nir Levy 的回答是正确的,但我会尝试为您提供更多关于正在发生的事情的背景信息。

var express = require('express');
// Import the meter export and assign it a variable for reuse.
var meter = require('./meter');
var app = express();
app.listen(3000);
console.log('listening on 3000 port')

根据 Nir ​​的回答,您只需使用 meter.hi 处理对 / 的获取请求

app.get('/', meter.hi);

这里发生的事情是 JavaScript 将所有参数传递给 meter.hi 方法。在 express 的情况下,这里将有 3 个参数 - requestresponsenext 按此顺序传递。

在模块 meter 中,您只使用请求和响应,这很好,但如果需要任何其他处理或 meter.hi 的参数需要改变,您可能需要遵循以下做法。

app.get('/', function( req, res ) {
  // You can process the request here.
  // Eg. authentication
  meter.hi(req, res);
});

您可以更好地控制传递给模块的参数。

【讨论】:

    【解决方案2】:

    当你使用require的时候,你应该把它赋给一个变量,然后你就可以在你的代码中使用它了:

    var express = require('express');
    var meter = require('./meter');  // meter will be an object you can use later on
    var app = express();
    
    app.get('/',meter.hi); // you actually don't need another annonimous function, can use hi directly as the callback
    
    app.listen(3000);
    console.log('listening on 3000 port')
    

    【讨论】:

    • 感谢@Nir Levy。工作完美。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多