node.js继续执行而无需等待要求完成。

NNNNNNNNNNDEL

我正在尝试访问必需的节点文件中的变量。但是,需要它的文件总是在不等待变量设置的情况下继续运行。如何让app.coffee等待才能继续?

我有两个文件:

db.coffee:

databaseUrl = 'mongodb://localhost/db'
mongoose = require('mongoose')
mongoose.connect(databaseUrl)

db = mongoose.connection
records = []

db.on('error', console.error.bind(console, 'connection error:'))

db.once('open', () -> 
        console.log('Connected to database: ', databaseUrl)
    )

schema = new mongoose.Schema({play_counts: {type: Number}, album_name: {type: String }})

albums = mongoose.model('albums', schema)

albums.find({}, {}, (err, data) ->
        if err?
            console.log("Error: failure to retrieve albums.")
            return
        else
            records = data
    )

console.log(records)

module.export = records

和app.coffee:

db = require('./db')

console.log(db)

当我运行app.coffee时,我从控制台登录应用程序中获得了[]的输出,然后是db.coffee的输出,即使需要调用也是如此。

什么是让应用程序等待db完成然后再继续的最佳方法,因此我可以访问db.coffee中的record变量。谢谢你的帮助。

滞后反射

从某种意义上说db.coffee 已经完成了。该文件中的所有代码均已执行。

只是您想要的东西records不可用,因为负责获取它的函数albums.find需要第三个参数(err, data),这是一个函数,当猫鼬实际上在数据库中找到您的记录时,它就会被调用。这是一个磁盘操作,因此这是Nodejs异步性质的亮点,因为它使您能够在猫鼬获取上述数据的同时“继续前进”并继续执行其他操作。

因此,实际上,您并不想依赖于db.coffee完成,实际上您albums.find等待的是函数调用了您作为第三个参数传递的回调:(err, data)

albums从您的位置db.coffee而不是记录中导出本身会更有意义

albums = mongoose.model('albums', schema)
module.export = albums;

然后在您中app.coffee进行获取/查找记录:

albums = require('./db')
albums.find({}, {}, (err, data) ->
    if err?
        console.log("Error: failure to retrieve albums.")
        return
    else
        console.log(records)
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js(node-pg)或C(libpq)-执行PostgreSQL请求而无需等待响应?

来自分类Dev

Node.js,等待所有Redis查询完成,然后再继续执行

来自分类Dev

Node.js,等待所有Redis查询完成,然后再继续执行

来自分类Dev

如何在Node.js中继续之前等待函数完成

来自分类Dev

Node.js等待fs.mkdir()完成之后再继续吗?

来自分类Dev

Node.js等待fs.mkdir()完成之后再继续吗?

来自分类Dev

等待请求完成Node.js

来自分类Dev

等待操作在node.js中完成

来自分类Dev

node.js等待文件操作完成

来自分类Dev

Node.js强制等待功能完成

来自分类Dev

Node js:等待 100 个请求完成

来自分类Dev

继续执行Python更新脚本,而无需等待用户输入

来自分类Dev

是否可以导出/要求使用Node.js中的模块,而无需使用var持有其对象的模块?

来自分类Dev

等待功能完成后再执行下一步-Node JS

来自分类Dev

Node.js在执行功能之前需要等待循环完成

来自分类Dev

JS(node.js)-如果我进行异步调用但不等待其完成,是否可以保证完成执行?

来自分类Dev

JS(node.js)-如果我进行异步调用但不等待其完成,是否可以保证完成执行?

来自分类Dev

JavaScript,node.js在继续之前等待socket.on响应

来自分类Dev

Node.js Discord bot 在继续之前等待角色移除

来自分类Dev

Node.JS写入标准输出而无需换行

来自分类Dev

如何在Node.js中等待子进程完成?

来自分类Dev

是什么导致node.js等待请求完成?

来自分类Dev

Node.JS等待每个并行mysql查询完成

来自分类Dev

Node.js中的功能编程-等待功能完成

来自分类Dev

node.js:等待所有线程完成

来自分类Dev

Node.js等待for循环完成以mysql查询

来自分类Dev

等待循环执行并在 Node Js 中获取值

来自分类Dev

Node.js相对要求执行脚本的路径

来自分类Dev

Node.JS 在启动其他命令之前等待 node-cmd run 命令完成

Related 相关文章

  1. 1

    Node.js(node-pg)或C(libpq)-执行PostgreSQL请求而无需等待响应?

  2. 2

    Node.js,等待所有Redis查询完成,然后再继续执行

  3. 3

    Node.js,等待所有Redis查询完成,然后再继续执行

  4. 4

    如何在Node.js中继续之前等待函数完成

  5. 5

    Node.js等待fs.mkdir()完成之后再继续吗?

  6. 6

    Node.js等待fs.mkdir()完成之后再继续吗?

  7. 7

    等待请求完成Node.js

  8. 8

    等待操作在node.js中完成

  9. 9

    node.js等待文件操作完成

  10. 10

    Node.js强制等待功能完成

  11. 11

    Node js:等待 100 个请求完成

  12. 12

    继续执行Python更新脚本,而无需等待用户输入

  13. 13

    是否可以导出/要求使用Node.js中的模块,而无需使用var持有其对象的模块?

  14. 14

    等待功能完成后再执行下一步-Node JS

  15. 15

    Node.js在执行功能之前需要等待循环完成

  16. 16

    JS(node.js)-如果我进行异步调用但不等待其完成,是否可以保证完成执行?

  17. 17

    JS(node.js)-如果我进行异步调用但不等待其完成,是否可以保证完成执行?

  18. 18

    JavaScript,node.js在继续之前等待socket.on响应

  19. 19

    Node.js Discord bot 在继续之前等待角色移除

  20. 20

    Node.JS写入标准输出而无需换行

  21. 21

    如何在Node.js中等待子进程完成?

  22. 22

    是什么导致node.js等待请求完成?

  23. 23

    Node.JS等待每个并行mysql查询完成

  24. 24

    Node.js中的功能编程-等待功能完成

  25. 25

    node.js:等待所有线程完成

  26. 26

    Node.js等待for循环完成以mysql查询

  27. 27

    等待循环执行并在 Node Js 中获取值

  28. 28

    Node.js相对要求执行脚本的路径

  29. 29

    Node.JS 在启动其他命令之前等待 node-cmd run 命令完成

热门标签

归档