我希望能够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) 在我的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)
知道我错过了什么吗?我应该怎么做才能调用这个函数?
我正在尝试将我的控制器分成多个文件,但是当我尝试在我的模块中注册它时我得到一个错误:
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) 老实说,我试图覆盖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)
提前致谢!
我无法克服反应路由器的问题.场景是我需要从子状态组件和路由传递子路由一组道具.
我想做的是通过childRouteA它propsA,并通过childRouteB它propsB.然而,我能弄清楚如何做到这一点的唯一方法是传递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 …
我们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)
我的问题是,有没有办法在绑定后删除/替换回调?或者是自己绑定代理回调和管理状态的唯一方法?
我正在写一个包含一些CoffeeScript的Django应用程序.为了实现这个目的,我使用了django-compressor,它在应用程序启动之前将CoffeeScript编译为JS.django-compressor要求在机器上安装NPM来编译CoffeeScript.
现在我想在Heroku上部署这个应用程序.我不能把npm放在我身上requirements.txt所以我想知道如何在Heroku服务器上获得npm?
表达方式
[1, 2, 3] == [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
false在Coffeescript中评估,但是有一种简洁,惯用的方法来测试数组相等吗?
开始使用node.js构建Web应用程序.
我的一位同事询问了TypeScript,它是Microsoft的一种新语言.我们计划用node.js和TypeScript作为Scripting引擎启动我们的新Web应用程序.
我只想知道是时候使用TypeScript开发应用程序了吗?TypeScript的未来如何?
如果在参数前面加上@,CoffeeScript会自动将参数设置为构造函数中的实例属性.
有什么技巧可以在ES6中完成同样的工作吗?
coffeescript ×10
javascript ×4
node.js ×3
angularjs ×1
arrays ×1
backbone.js ×1
django ×1
ecmascript-6 ×1
equality ×1
heroku ×1
npm ×1
parent-child ×1
react-router ×1
reactjs ×1
readline ×1
terminal ×1
typescript ×1
vim ×1