将参数函数Node.js从一个js传递到另一个js

pass parameter function Node.js from one js to another

本文关键字:js 一个 另一个 函数 参数 Node      更新时间:2023-09-26

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

这就是我正在尝试的。Index.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"});
    }
};

只需要函数就能完成工作吗?

当你使用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的回答是正确的,但我会尽量给你更多的背景。

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来处理对/的get请求

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

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

在模块meter中,您只是单独使用请求和响应,这很好,但如果需要任何其他处理或meter.hi的参数需要变化,您可能希望遵循以下实践。

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

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