Tag: coffeescript

正确使用Mongoskin

我通常使用mongoskin因为我喜欢靠近数据库。 通常,我使用db.coffee文件进行设置,其中包含以下内容: mongo = require 'mongoskin' # either local module.exports = mongo.db 'mongodb://localhost/database' # or remote module.exports = mongo.db 'mongodb://<user>:<pass>@<host>:<port>/<db>?auto_reconnect=true' 然后我用我的其他来源: db = require 'db' users = db.collection 'users' # Now use the collection in handlers and middleware 当我使用本地mongo服务器时,这似乎工作得很好,我已经有几个月的正常运行时间,而且从来没有成为问题。 但是,当我使用远程秒时,如果服务器运行时间超过几分钟,则会出现问题 – 即使使用auto_reconnect ,与mongodb的连接似乎auto_reconnect丢失。 我想这是因为localhost连接永远不会自动closures。 然而,这导致我想如果我可能使用mongoskin在错误的方式,或者如果只是一个错误与auto_reconnect ?

如何在Tower.js中使用一对多关系?

所以,我一直在生成不同的脚手架,试图使用塔的一对多关系特性,但我不知道如何实际连接相关实例来利用关系。 例如,我最近的脚手架是这样产生的: tower generate scaffold User email:string firstName:string lastName:string hasMany:posts tower generate scaffold Post title:string body:text userId:integer belongsTo:user 现在,在rails中,post模型中的userId字段将与共享该id的用户形成连接,然后您可以使用它来访问该关系。 但是这里似乎没有做任何事情。 尝试使用从这里的任何代码: https : //github.com/viatropos/tower/wiki/1-n只是给了我错误。 在塔式控制台中,我能够创build一个示例用户和post(我也可以通过运行服务器并使用网页上的表单来轻松完成),如下所示: tower> user = new App.User tower> user.attributes = { email: "bill@bill.com", firstName: "bill", lastName: "billiams" } tower> post = new App.Post tower> post.attributes = { title: "A Post", body: "This […]

为什么多次运行CoffeeScript编译器会产生不同的输出?

我试图编译非常简单的咖啡脚本: n = 4; 使用代码 require('coffee-script').compile(str); 我在解决scheme中多次执行此操作,而无需caching结果。 我第一次这样做,我得到: (function() { var n; n = 4; }).call(this); 但如果我再打电话给我,我会得到: n = 4; 为什么我不能第二次得到包装函数,我怎样才能让它每次都得到相同的结果。

自动化与Jenkins的coffeescript编译

我在我的一个项目的窗口框中设置了jenkins CI服务器。 有一部分是用Coffeescript编写的。 以前这部分没有循环到构build过程中。 现在需要。 我还没有看到任何jenkins的coffeescript插件,或者在jenkins中构build咖啡标题的主题。 我正在寻找最简单的方法来build立一个jenkins生成包括一个咖啡编译步骤。 最好通过jenkins上的插件,而不是手动在盒子上安装程序。 目前,咖啡脚本是通过像这样的命令编译的 coffee –lint –watch –output "C:\repositories\martha\trunk\bb\app\bin\js/" –compile "C:/repositories/martha/trunk/bb/app/src/" 在开发框的Node.js命令提示符下 我还注意到,Jenkins有一个node.js插件,您可以在构build步骤中运行脚本。 我不相信我可以使用命令npm install -g coffee-script或coffee –compile通过node.js脚本而不是命令行。 虽然我希望我错了。 目前我看到的最好的select是在框中安装node.js,使用npm安装咖啡脚本,然后作为构build步骤运行批处理脚本。 虽然我愿意这样做,但是我想在盒子上less安装手动安装,以便在更多的项目中使用咖啡脚本。 这是我最好的select吗? 值得一提的是,尽pipe我使用node.js来编译coffee-script,node.js本身及其function,对我来说是非常新的。

Socket.io和Webscocket在同一台服务器上侦听

我需要在socket.io和websocket(来自'ws'包)处理程序之间共享相同的http服务器。 不幸的是,尽pipe他们正在监听不同的前缀,第一个是监听/socket.io,第二个监听到/ websocket,因为某些原因,如果他们运行在同一台服务器上,websocket工作不正常。 我做了一些debugging,但似乎这两个库正确处理请求,但最终只有socket.io正常工作。 任何想法如何解决?

嵌套Lodash forEach

我有一个相当深的内存数据库,我想,我已经find了最好的代码实现,如果有人有一个更好的方法来做一个双重forEach循环在lodash中,或者如果我用它错了某种方式将是伟大的知道。 物体: smallDB = { user1:{ permissions:[], locations:[ {ip:'0.0.0.0',messages:[]}, {ip:'',messages:[]} ] }, user2:{ permissions:[], locations:[ {ip:'0.0.0.0',messages:[]}, {ip:'0.0.1.0',messages:[{mid:'a unique id','user':'the sender',message:'the text of the message'}]} ] } } 发送一条消息我使用: ld.forEach smallDB, (a)-> ld.forEach a.locations, (b)-> b.messages.push {mid,user,message} 我只是想确保这是将消息添加到miniDB中的所有用户以及所有位置的最佳方式

`Node.js中的`stream.Transform.unshift()`

考虑一个简单的例子: stream = require 'stream' util = require 'util' class TestTransform extends stream.Transform _transform: (chunk, encoding, callback) -> if not @noMore @noMore = true @unshift chunk # I will handle you later else @push " <#{chunk.toString().toUpperCase()}>" callback() mt = new TestTransform() mt.write 'first' mt.write 'second' mt.on 'data', (chunk) -> console.log "data: #{util.inspect chunk.toString()}" $ coffee […]

asynchronous处理节点中的HTTP请求

我有一个node.js项目,它有一个由App::add()填充的async ::队列 。 这是我用来创build服务器的代码: app = new App config server = http.createServer (req, res) -> app.add req, res, (err) -> res.headers = 'Content-Type': 'application/json' res.end JSON.stringify error: err .listen config.port App::add()从req获取参数,并使用callbackreq将任务添加到队列中。 队列处理结束的function。 如果发生错误,则会发给用户。 到目前为止工作良好。 但是当并行执行多个请求时,只处理一个请求。 我试过了: http.createServer末尾的console.log被立即调用,但下一个请求只在第一个结束后处理。 在App::add()开头的一个console.log ,和上面一样 我如何处理并发请求? 提前致谢。 编辑: 为了清除一些事情,这是我想要的: 许多许多客户请求服务下载一个zip文件 他们排成队列,每次处理n个 一旦完成,每个人都会得到他们的邮政编码 编辑2: 我试图使用集群模块 ,但这并没有什么帮助,因为我必须结束res 。 编辑3: 我试图返回一个stream而不closures,但也没有成功。 我有点绝望,也许我只是转发人到另一台服务器,他们可以下载他们的文件。

Node.js中的单例/可重用服务器对象的最佳方法

如果我想在应用程序启动时实例化一个Express服务器,并且稍后引用另一个类中的一些实例化服务器的属性,那么这是一个“好”的方法吗? 看起来像一个单身服务器实例可以工作,但这只是在JS /节点感觉错误。 例如: # app.coffee server = new Server() # server.coffee Http = require 'http' express = require 'express' class Server foos: null constructor: -> @app = express() Http.createServer(@app).listen('1337', 'localhost', cb) cb: -> @foos = ['foo', 'bar'] # another_class.coffee Server = require './server' class AnotherClass constructor: -> # how do I access and do […]

MeteorJS:Meteor.call中的错误

我在客户端有这个代码 Template['product'].events 'click .addcart': (event, template) -> event.preventDefault() add_this = {"item": 1, "name": "test", "qty": 5, "price": 124} Meteor.call "Carts.push", add_this return 并在服务器 Meteor.methods 'Carts.push': (params) -> console.log params 每次点击button添加购物车我在服务器端出现错误 调用方法“Carts.push”时出现exception错误:在调用“Carts.push”期间未检查()所有参数 任何想法为什么这个错误持续?