gpt4 book ai didi

node.js - 在node.js中如何获取当前模块中其他模块函数的结果?

转载 作者:可可西里 更新时间:2023-11-01 11:02:23 26 4
gpt4 key购买 nike

我需要当前模块中其他模块函数的结果。我该怎么做。

module1.js

         var module2=require('./lib/module2');
module2.getValue();

现在我希望在 getValue 方法中返回“true”。我怎样才能到达这里。

以下代码在其他语言中将有效

var result=module2.getValue();

但在 node.js 中,我们必须使用回调方法来获取该值。我该怎么做。

module2.js

exports.getValue=function(){

console.log('getValue method called.');
return true;

};

最后我也更改了我的 module1 代码,但我没有得到正确的结果。下面是我更新的 module1 代码

     var module2=require('./lib/module2');
module2.getValue();

下面是我的具体代码

服务器.js

     var express = require('express')
, http = require('http');

var app = express();

app.configure(function(){
app.use(express.static(__dirname + '/public'));
});

var server = http.createServer(app);

var io = require('socket.io').listen(server);

server.listen(8000);

var cradle=require('cradle');

new(cradle.Connection)('https://mydomain.iriscouch.com/', 5984, {
cache: true,
raw: false
});


cradle.setup({
host: 'mydomain.iriscouch.com',
cache: true,
raw: false
});


var c = new(cradle.Connection);
exports.connObj=c;

var notifications=require('./lib/Notifications');
var notificationId="89b92aa8256cad446913118601000feb";
console.log(notifications.getNotificatiosById(notificationId));

通知.js

        var appModule=require('../server');
var connectionObj=appModule.connObj;
var db = connectionObj.database('notifications');


exports.getNotificatiosById=function(notificationId){

db.get(notificationId, function (err, doc) {
console.log(doc);//im getting output for this line while running server.js file
return true;
});

};

最佳答案

所以你有这个方法:

exports.getNotificatiosById = function (notificationId) {

db.get(notificationId, function (err, doc) {
console.log(doc); //im getting output for this line while running server.js file
return true;
});

};

有内部回调函数。在这种情况下,getNotificatiosById 不可能从 db.get 内部返回值。您可能应该阅读 this .

我不知道你使用的是哪个数据库系统,但也许在 API 中有一个同步版本,即 db.getSync。然后我们可以这样做:

exports.getNotificatiosById = function (notificationId) {

return db.getSync(notificationId);

};

但基本上在 NodeJS 中,由于执行脚本的非阻塞方式,我们几乎总是使用(并且想要使用)回调函数。不管你对这些东西了解多少,我都推荐Introduction to Node.js Node 的创建者在视频中解释了很多。

关于node.js - 在node.js中如何获取当前模块中其他模块函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15495710/

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