从mongoDB删除logging添加自动化过程的最佳方法是什么?

我目前有一个聊天机器人设置将logging存储到MongoDB。 存储在Mongo中的对象看起来像… { …, expiration_time: 12451525, … } 其中expiration_time是以分钟表示的数字。 我最初的方法是在Web应用程序上使用setInterval来查询数据库,以删除所有符合当前时间标准的logging大于或等于过期时间。 然而,当我们已经有其他的操作,比如读写数据时,我觉得Web应用程序会对数据库进行大量的附加查询。 我读了关于将函数存储到Mongo中,但我确定如何自动执行调用函数来自我删除logging的过程。 我绝对会喜欢任何有关最佳实践的反馈,方法或准则。 提前致谢!

http.get()方法和var request = require('request')有什么区别

我是新来的节点JS,在learnyounode的nodeJS练习no.8中,我的解决scheme产生相同的require结果。我很困惑什么时候使用http.get和Request 目标 :编写一个执行HTTP GET请求的程序给你提供的URL 作为第一个命令行参数。 从服务器收集所有数据(不是 只是第一个“数据”事件),然后写两行到控制台 (标准输出)。 你写的第一行应该只是一个表示数字的整数 从服务器收到的字符。 第二行应该包含 完成服务器发送的string。 官方解决scheme var http = require('http') var bl = require('bl') http.get(process.argv[2], function (response) { response.pipe(bl(function (err, data) { if (err) return console.error(err) data = data.toString() console.log(data.length) console.log(data) })) }) 我的解决scheme var request=require('request') request(process.argv[2],function(err,response,body){ console.log(body.length); console.log(body); })

Nodejs – 这个代码中的执行顺序是什么? asynchronous在内部等待循环

假设我们有一个模型“用户”,一个模型“游戏”。 一个用户可以有很多游戏,但是一个游戏只属于一个用户。 在“用户”模式中,我们有场“gamesCount” – 用户拥有的游戏总数 在“游戏”模式中,我们有与用户相关的字段userId 现在我们需要遍历所有的用户,并且对于每个用户,我们查询“游戏”集合以获得用户有多less游戏,然后将值“gamesCount”保存到用户模型。 我有2个代码片段: updateUserGamesCount: async function (req, res) { try { let users = await User.find({}); for (let user of users) { user.gamesCount= await Game.count({userId: user._id}); await user.save(); } return res.status(200).send("Success"); } catch (err) { res.status(500).send(err); } } 这第一个片段不起作用。 它只是加载一段时间,然后请求超时。 当我尝试修改gamesCount值来查看它是否已更新时,则在第一个片段运行后,值不会更新。 updateUserGamesCount: async function (req, res) { try { let […]

命令行应用程序的节点框架?

我试图find一个非常简单的框架来组织nodejs命令行应用程序的“架构”。 我发现这个网站: http : //nodeframework.com/但它似乎是围绕networking或networking框架,所以希望有人可以指点我更适合的东西。 谢谢,尼克

Firebase的云端function:将整个数据库读入内存

我想将整个Firebase数据库从后端Cloud Function中读取到variables中,如下所示: exports.transformUserData = functions.https.onRequest((request, response) => { admin.database().ref('/').on('value', function (snapshot) { var dbData = snapshot.val(); … }); … }); 这安全吗? (从内存或美元成本的angular度来看,速度在这种情况下不是问题)。 我预计,由于内存不足错误,一旦数据库增长,函数就会崩溃。 如果是这样,在什么样的内存限制下,我们可以期望它崩溃? (例如10MB )。 提前感谢您的任何build议!

npm / Frameworks /如何知道应该使用哪个版本?

我面对的问题是, 我永远不知道哪个版本的npm,Ionic等, 我应该安装 。 例如: “哦,一个新的Ionic CLI版本在这里,让我们安装它” 安装CLI v3.9.0 “哦,我的项目中没有任何工作了,Mhhh让我们更新框架” 安装离子angular3.6.0 “哦,让CLI工作我需要一个5以上的npm版本” 安装新的npm版本 而且毕竟更新什么都 行不通 ,因为这个版本的bla bla bla 不适用于那个bla bla bla的版本。 我们都知道斗争。 但是,在所有的论坛中,总有一些人似乎知道你需要从什么框架安装哪个版本才能让你的项目运行。 那里也有很多编程教程。 但是首先我们需要学习结构,以及所有框架和客户如何相互关联和合作。 我和其他人一样,想知道如何知道我不应该安装新的更新,因为它与其他框架不兼容。 但是,如果没有我们初学者的知识,我们会立即安装更新,而不知道是否会更好。 这是另一个例子: 如果不知道Ionic 3.6需要低于5的npm才能完美工作,则可以安装npm 5+。 现在你想为你的项目安装一个插件,并在例子中得到一个GYP错误。 那么不知道你的NPM版本只是导致错误一个初学者会浪费这么多的时间search如何reslove GYP错误。 逻辑。 因为在他安装npm 5+之前,他应该怎么知道他必须等待更新版本的Ionic 所以,请帮助我和许多其他人,解释并让我们知道我们需要知道的信息的位置和方式,所以最终初学者也是知道如何做“版本控制”的专家。

在watson会话中设置多个输出文本值

我在对话中有下面的节点。 我想提出的行动,并根据需要调用的API。 在成功的情况下,将显示output.text [0]和output.text [1] { "output": { "text": { "values": [ "I want to get this with success scenario", "I want to get this with error scenario" ], "selection_policy": "sequential" }, "action": "MyAction" } } 但是当我访问node.js中的这个会话节点时,它总是会给出第一个值,即'我想要成功获取这个场景',它永远不会给出像'我想得到这个错误场景'这样的输出。 如何解决这个问题?

如何预装或将静态文件安装到Highchart的导出服务器中?

这是如此,如果我使用HTML导出图表,我可以引用样式类,所以我的图表将生成,因为它是在我的Web应用程序。 目前我尝试将CS​​S存储在我的resources.json文件中,但是这个样式似乎不适用于我的任何一个图表。 我知道在线样式标签适用于图表,当我在我的HTML中使用它,但是,因为我有很多的样式,最好加载它全部一次使用resources.json 更新 提供的命令d_paul工作,所以感谢你! 我试图用enableServer命令加载资源,但不会读取它。 无论如何,通过导出API http://api.highcharts.com/highcharts/exporting发送resources参数 我知道你可以发送JSON到服务器的资源参数,并让它以这种方式呈现,只是想知道是否有办法通过我上面链接的导出API发送它。 或者,如果不通过API,如果我可以加载资源,当我启动服务器使用enableServer参数?

如何在没有CC和/或BCC受体的情况下使用sparkpost?

这是我的传输对象: if(req.body.bcc === ''){ req.body.bcc = ''; } if (req.body.cc === '') { req.body.cc = ''; } if (req.body.subject === '') { req.body.subject = 'No subject'; } if (req.body.source === '') { req.body.source = '<EMAIL OMITTED>'; } if (req.body.messageBody === '') { req.body.messageBody = 'No body text has been entered'; } var transmission = { […]

无法读取节点JS中未定义的属性“名称”

我在Node js中是新的。 我正在尝试使用mysql在节点js中制作CRUD应用程序。 但我面临着我无法理解或处理的错误。 请帮忙。 并在adv。 我无法从ejs页面读取input字段值到server.js页面。 我的server.js文件在下面给出 // server.js var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "tuts_rest" }); // set the view engine to ejs app.set('view engine', 'ejs'); // about page app.get('/about', function(req, res) […]