在MongoDB中列出涉及用户的每个对话的最后一条消息

让我们说我有一个看起来像这样的消息的mongo数据库: { "_id": ObjectId("5458009c1ab2354c029d7178"), "to": "dan", "from": "wood", "message": "hi dan how are you?", "time": new Date(1415053468590), "__v": 0 } { "_id": ObjectId("545800b45eaf364d026c1cba"), "to": "wood", "from": "dan", "message": "hi wood how are you?", "time": new Date(1415053492125), "__v": 0 } { "_id": ObjectId("5458009c1ab2354c029d7178"), "to": "billy", "from": "wood", "message": "hi billy how are you?", "time": new Date(1415053468590), […]

“Node.js命令提示符”和Windows命令提示符有什么区别?

“Node.js命令提示符”和Windows命令提示符有什么区别? 或者更重要的是,为什么当你可以从Windows命令提示符运行节点程序时,它甚至存在? 注:我正在问这个人, 而不是 REPL:

Sinon – 如何存根嵌套函数?

道歉,如果这是一个简单的问题,我是相对较新的节点和Sinon。 我努力想弄清楚如何断言在Nodejs中调用了一个嵌套的asynchronous函数。 我正在使用摩卡,柴,sinon和请求( https://github.com/request/request ),但认为我遗漏了一些基本的部分。 在my_app.js里面的例子 – var request = require('request'); function MyModule() { }; MyModule.prototype.getTicker = function(callback) { request('http://example.com/api/ticker', function(error, response) { if (error) { callback(error); } else { callback(null, response); } }); }; exports.mymodule = new MyModule(); 在testing里面。 我正在试图剔除请求并提供一些虚拟数据返回。 但我不断收到一个错误“请求未定义”在我创build存根的行上。 var myApp = require('../my_app.js') ,assert = require("assert") ,chai = require('chai') ,sinon = require('sinon') […]

如何在没有webpack dev服务器的情况下使用webpack进行开发?

我目前使用require.js进行开发,所以我可以快速迭代(更改文件,刷新页面,不需要构build步骤),但是我使用webpack作为构build工具,因为它优于r.js 我想完全摆脱require.js并将webpack用作开发中的脚本加载器。 我知道这正是webpack dev server的function,但是我特别不想使用它。 理想情况下,我只是在<script>包含某种webpack加载器,将其指向我的webpack.js构buildconfiguration,然后让它完成这项工作。

如何根据“模式”过滤JSON对象

我使用node.js和express / koa构build了一个RESTful API。 我想过滤JSON数据input – 出于安全原因,以及只有需要的业务特定的属性。 过滤后,业务特定的validation发生。 我如何扔掉不需要的JSON / JS对象属性 – 即属性不在我的数据库架构以及空属性? 根据这个定义架构和filter? 使用例如https://github.com/alank64/json-schema-filter 任何可configuration的过滤可用?

expressjs路由中的可选扩展

我想有一个可选的扩展名,如.xml或.csv或.json (默认,没有扩展将返回JSON)。 app.get('/days-ago/:days(.:ext)?', function(req, res) { 这似乎不工作,有什么我做错了? GET /days-ago/7.xml GET /days-ago/7.csv GET /days-ago/7.json GET /days-ago/7

socket.io 1.2.1如何在重新连接后解决双重事件

在socket.io的博客中说,在1.2.1版本中 “自述文件修复,以防止在重新连接的示例中的双重事件[@nkzawa]” 我为客户端和服务器下载了1.2.1版本,但是在重新连接之后仍然是两次调用事件。 或者我应该用自述文件做些什么? 我试过这种方式重新连接,它的工作,但我可以用它来生产。 这是不是很方便? socket.disconnect() // remove socket object socket = undefined // connect again socket = io.connect({'forceNew':true}) 正如我所说的是正确的方式,还是有缺点? 更新,添加代码 服务器端代码 socket.on('client_emited', function(data){ socketIO.to('this socket id').emit('server_emitted'); }) 客户端代码 var socket; function connectSocket () { if (!socket) socket = io({'forceNew':true}); else socket.connect(); } socket.on('connect', function(){ console.log('CONNECTED TO SOCKET.IO SERVER. SENDING "client_emited" EVENT'); socket.emit('client_emited'); }); […]

在login屏幕中禁用stormpath的创build帐户选项

我想在stormpathlogin屏幕中禁用创build帐户。 对API的调用应该已经从用户authentication到应用程序。 我尝试将stormpathEnableRegistration设置为false,但注册function仍处于启用状态。 app.use(stormpath.init(app, { apiKeyFile: config.stormpathapi.apiKeyFile, application: config.stormpathapi.application, secretKey: config.stormpathapi.secretKey, sessionDuration: 1000 * 60 * 30, enableAutoLogin: true, enableUsername: true, stormpathEnableRegistration: false })); 谢谢!

有没有办法在Node.js shell中运行JavaScript文件?

我是Node.js新手,我想知道是否有从Node shell内部执行JavaScript文件的方法。 让我这样解释: 而不是这样做: $ node file.js 这将执行脚本,但会closures节点壳后… 是否有执行已经在Node shell内的脚本的方法? 就像是: $ node > file.js # We're now inside the Node.js shell … script execution… > # already inside the shell, # then being able to access to script variables

如何利用node.js中的浏览器caching?

我的网站在node.js服务器上运行,当我检查我的网站在谷歌页面洞察工具,它显示我利用浏览器caching。 我在互联网上search了很多,但没有运气。 如果有谁知道如何利用node.js中的浏览器caching,请让我知道。