标签: coffeescript

如何从node.js打开终端应用程序?

我希望能够Vim从终端中运行的node.js程序打开,创建一些内容,保存并退出Vim,然后抓取文件的内容.

我正在尝试做这样的事情:

filename = '/tmp/tmpfile-' + process.pid

editor = process.env['EDITOR'] ? 'vi'
spawn editor, [filename], (err, stdout, stderr) ->

  text = fs.readFileSync filename
  console.log text
Run Code Online (Sandbox Code Playgroud)

但是,当它运行时,它只是挂起终端.

我也试过了exec,得到了同样的结果.

更新:

由于在readline运行的提示符下键入的命令启动了此过程,因此这很复杂.我完全将我最新版本的相关部分提取到文件中.这是完整的:

{spawn} = require 'child_process'
fs = require 'fs'
tty = require 'tty'
rl = require 'readline'

cli = rl.createInterface process.stdin, process.stdout, null
cli.prompt()

filename = '/tmp/tmpfile-' + process.pid

proc = spawn 'vim', [filename]

#cli.pause()
process.stdin.resume()

indata = (c) ->
    proc.stdin.write c
process.stdin.on 'data', …
Run Code Online (Sandbox Code Playgroud)

vim terminal readline node.js coffeescript

24
推荐指数
2
解决办法
1万
查看次数

在找不到app/assets/javascript中创建的CoffeeScript函数

在我的CoffeeScript文件中clients.js.coffee,

myFunction = (variable) ->
Run Code Online (Sandbox Code Playgroud)

我在CoffeeScript中创建了一个函数app/assets/javascript.但是当我尝试调用该函数时,控制台向我显示错误,指出找不到函数.

我检查页面的来源,它显示脚本已加载:

<script src="/assets/clients.js?body=1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

这是在脚本源中找到的内容:

(function() {
  var myFunction;

  myFunction = function(variable) {}
}).call(this);
Run Code Online (Sandbox Code Playgroud)

知道我错过了什么吗?我应该怎么做才能调用这个函数?

javascript ruby-on-rails coffeescript ruby-on-rails-3

24
推荐指数
2
解决办法
7581
查看次数

AngularJS:如何在多个文件中创建控制器

我正在尝试将我的控制器分成多个文件,但是当我尝试在我的模块中注册它时我得到一个错误:

groupcontroller.coffee

app = angular.module('WebChat', []);
app.controller 'GroupController', ($scope) -> 
Run Code Online (Sandbox Code Playgroud)

usercontroller.coffee

app = angular.module('WebChat', []);
app.controller 'UserController', ($scope) -> 
Run Code Online (Sandbox Code Playgroud)

错误

错误:参数'GroupController'不是函数,未定义

从文档中我还没有真正得到模块方法所做的事情.它是否用"网聊"键存储我的控制器?

编辑: 似乎传递[]创建一个新模块并覆盖前一个模块

app = angular.module('WebChat', []);
Run Code Online (Sandbox Code Playgroud)

为了防止这种情况,你必须省略[]之类的

app = angular.module('WebChat');
Run Code Online (Sandbox Code Playgroud)

coffeescript angularjs

24
推荐指数
2
解决办法
2万
查看次数

在Model级别覆盖Backbone.sync()以发送额外的参数?

老实说,我试图覆盖Backbone的一个Model的sync()方法,我有适当的函数签名,并且它被正确触发,但我不知道在函数体放入什么命令它默认调用DELETE但有额外的参数.即.

class Master.Models.Member extends Backbone.Model
  urlRoot: '/api/members/'

  sync: (method, model, options) ->
    params = _.clone options
    Backbone.sync method, model, params
Run Code Online (Sandbox Code Playgroud)

我称之为:

......
remove: ->
  @model.destroy
    collective_id: the_id
Run Code Online (Sandbox Code Playgroud)

我的目的是将你在那里看到的collective_id param 传递给服务器.但即使它在sync()的选项哈希中,我克隆它,它也不会进入服务器! 如何将额外的参数发送到服务器?

(实际上,到达服务器的唯一东西是Model的id)

提前致谢!

javascript coffeescript backbone.js

24
推荐指数
2
解决办法
2万
查看次数

将道具传递给React Router子路由

我无法克服反应路由器的问题.场景是我需要从子状态组件和路由传递子路由一组道具.
我想做的是通过childRouteApropsA,并通过childRouteBpropsB.然而,我能弄清楚如何做到这一点的唯一方法是传递RouteHandler两者propsA,propsB这意味着每条儿童路线都会获得每个儿童道具,无论其是否相关.这不是一个阻塞问题,但我可以看到我正在使用两个相同组件的时间,这意味着propA上的键将被propB的键覆盖.

# routes
routes = (
  <Route name='filter' handler={ Parent } >
    <Route name='price' handler={ Child1 } />
    <Route name='time' handler={ Child2 } />
  </Route>
)

# Parent component
render: ->
  <div>
    <RouteHandler {...@allProps()} />
  </div>

timeProps: ->
  foo: 'bar'

priceProps: ->
  baz: 'qux'

# assign = require 'object-assign'
allProps: ->
  assign {}, timeProps(), priceProps()
Run Code Online (Sandbox Code Playgroud)

这实际上就像我期望的那样.当我链接到/filters/time我得到Child2渲染的组件.当我去/filters/price我得到Child1组件渲染.问题是,做这个过程,Child1 …

javascript parent-child coffeescript reactjs react-router

24
推荐指数
2
解决办法
2万
查看次数

在Node.js中解除绑定事件

我们stdin.on以此为例.回调stdin.on堆栈,所以如果我写(在CoffeeScript中)

stdin = process.openStdin()
stdin.setEncoding 'utf8'
stdin.on 'data', (input) -> console.log 'One'
stdin.on 'data', (input) -> console.log 'Two'
Run Code Online (Sandbox Code Playgroud)

然后,每当我在提示符处返回时,我都会得到

One
Two
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法在绑定后删除/替换回调?或者是自己绑定代理回调和管理状态的唯一方法?

javascript-events node.js coffeescript

23
推荐指数
2
解决办法
1万
查看次数

使用Django和NPM在Heroku上创建应用程序

我正在写一个包含一些CoffeeScript的Django应用程序.为了实现这个目的,我使用了django-compressor,它在应用程序启动之前将CoffeeScript编译为JS.django-compressor要求在机器上安装NPM来编译CoffeeScript.

现在我想在Heroku上部署这个应用程序.我不能把npm放在我身上requirements.txt所以我想知道如何在Heroku服务器上获得npm?

django heroku coffeescript npm

23
推荐指数
2
解决办法
5231
查看次数

有没有一种惯用的方法来测试Coffeescript中的数组相等性?

表达方式

[1, 2, 3] == [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

falseCoffeescript中评估,但是有一种简洁,惯用的方法来测试数组相等吗?

arrays equality coffeescript

23
推荐指数
2
解决办法
4655
查看次数

TypeScript或CoffeeScript

开始使用node.js构建Web应用程序.

我的一位同事询问了TypeScript,它是Microsoft的一种新语言.我们计划用node.js和TypeScript作为Scripting引擎启动我们的新Web应用程序.

我只想知道是时候使用TypeScript开发应用程序了吗?TypeScript的未来如何?

node.js coffeescript typescript

23
推荐指数
2
解决办法
2万
查看次数

在ES6中自动将参数设置为实例属性

如果在参数前面加上@,CoffeeScript会自动将参数设置为构造函数中的实例属性.

有什么技巧可以在ES6中完成同样的工作吗?

javascript coffeescript ecmascript-6

23
推荐指数
4
解决办法
5923
查看次数