NodeJS-从同一文件中的另一个方法调用一个方法
Node JS - Calling a method from another method in same file
我有这个nodeJS代码。
module.exports = {
foo: function(req, res){
...
this.bar(); // failing
bar(); // failing
...
},
bar: function(){
...
...
}
}
我需要从foo()
方法内部调用bar()
方法。我试过this.bar()
和bar()
,但都说不出TypeError: Object #<Object> has no method 'bar()'
。
如何从另一个方法调用一个方法?
您可以这样做:
module.exports = {
foo: function(req, res){
bar();
},
bar: bar
}
function bar() {
...
}
无需关闭。
接受的响应是错误的,您需要使用"this"关键字从当前范围调用bar方法:
module.exports = {
foo: function(req, res){
this.bar();
},
bar: function() { console.log('bar'); }
}
我认为您可以做的是在传递回调之前绑定上下文。
something.registerCallback(module.exports.foo.bind(module.exports));
试试这个:
module.exports = (function () {
function realBar() {
console.log('works');
}
return {
foo: function(){
realBar();
},
bar: realBar
};
}());
尝试以下代码。您可以从任何地方引用每个函数(需要导入.js文件)
function foo(req,res){
console.log("you are now in foo");
bar();
}
exports.foo = foo;
function bar(){
console.log("you are now in bar");
}
exports.bar = bar;
bar是否是foo的内部(私有)?
module.exports = {
foo: function(req, res){
...
function bar() {
...
...
}
bar();
...
}
}
在Nodejs+Express中,您可以在同一控制器中使用此语法
//myController.js
exports.funA = () =>{
console.log("Hello from funA!")
//cal funB
funB()
}
let funB = () =>{
console.log("Hello from funB!")
}
请确保在函数之前使用let关键字,并使用主函数内的()括号进行调用
输出
App listening at http://localhost:3000
Hello from fun A!
Hello from fun B!
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 使用两种不同的方法调用方法
- 如何在 javascript 中更改方法调用的全局范围