组织大型Node.js项目有哪些好方法?
例如,一个使用express.js和socket.io的应用程序?这将包括应用程序逻辑结构以及文件系统.
目前,我发现自己将大量代码推入单个主js文件并将代码放入一个巨大的全局对象中,它感觉很顽皮.
在我的应用程序中,我对数据所做的一切都基于主键,因为数据存储在数据库中.我想从基于此键的集合中获取模型.
使用Collection.at()需要数组索引,Collection.getByCid()需要骨干随机生成的客户端ID.
从具有给定id值的集合中获取我想要的模型的最佳方法是什么?我认为我能做的最糟糕的事情就是迭代每个项目.get('id'),然后返回那个项目.
在构建RESTful HTTP服务时,响应是通过204 No Content(例如,在Consumer发出DELETE请求之后),响应包含哪些内容类型?
应该省略吗?是否有首选的内容类型?它应该与同一资源的GET请求的内容类型相同吗?这无关紧要吗?
在express.js中,我想为每个URI侦听器的请求对象提供一个附加属性.这将提供协议,主机名和端口号.例如:
app.get('/users/:id', function(req, res) {
console.log(req.root); // https://12.34.56.78:1324/
});
Run Code Online (Sandbox Code Playgroud)
我当然可以连接req.protocol,req.host,并以某种方式传递我的每个URI侦听器的端口号(似乎从req对象中丢失),但我希望能够在一种方式,所有人都可以访问这些信息.
此外,主机名可以在请求之间变化(机器有多个接口),因此我不能在应用程序启动时连接此字符串.
目标是向消费者提供URI,指向此API中的更多资源.
是否有某种方式告诉Express我希望req对象有这些附加信息?有没有比我概述的更好的方法来做到这一点?
我试图改变<Leader>MacVim,以减少腕管诱导.我添加了这一行
let mapleader=","
Run Code Online (Sandbox Code Playgroud)
到我的.gvimrc,但"\"仍然是唯一有效的键.我错过了什么吗?
每次应用程序在Backbone.js中切换URL时我都需要运行一个函数,我需要知道URL已更改为的hashtag.我假设有一个我可以绑定的事件,但我无法弄清楚哪个事件和要绑定的对象.
具体来说,我想将新URL发送到分析应用程序.
我刚注意到:
//IN CHROME JS CONSOLE
parseInt("03010123"); //prints: 3010123
//IN NODE.JS
parseInt("03010123"); //prints: 790611
Run Code Online (Sandbox Code Playgroud)
由于两者都基于V8,为什么同样的操作会产生不同的结果?
如今设置网络接口指标的正确方法是什么?
我正在寻找命令行方式来做到这一点.我目前正在使用Arch Linux,但是首选的是不依赖于发行版的方法.
这是我失败的尝试:
$ sudo ifconfig wlan0 metric 1
SIOCSIFMETRIC: Operation not supported
Run Code Online (Sandbox Code Playgroud) 在jQuery中,我正在向服务器提交表单.当出现验证错误时,我从服务器收到400错误,并且文档正文是有效的JSON.我想知道如何访问从服务器返回的数据.
我永远不会调用jQuery.Ajax对象上的.error回调函数,所以我使用的是.statusCode {400}函数.这运行得很好,但是没有一个参数包含响应主体.
我希望能够在我的项目文件夹中运行单个命令,以将我的所有javascript文件(可能与YUI Compressor)连接并压缩为单个输出文件.
如果可能的话,我想部分指定它们连接在一起的顺序,但不必跟踪每个单独的javascript文件.也许可以构建一个如下所示的配置文件:
application.js
excanvas.js
json2.js
jquery*.js
flot/*
backbone*.js
app/screen-*.js
app/main.js
app/crud-*.js
app/*
*
Run Code Online (Sandbox Code Playgroud)
有没有人知道要做这样的事情的现有工具,可以将bash/ruby/node/perl脚本连在一起,甚至是更好的方法?我正在构建一个具有大量JS使用的单页应用程序(~40个文件),供低带宽的人使用.
我需要解决方案在我的OS X开发机器上可执行.
javascript ×5
node.js ×3
backbone.js ×2
archlinux ×1
bash ×1
express ×1
http ×1
jquery ×1
linux ×1
macvim ×1
networking ×1
parseint ×1
rest ×1
vi ×1
vim ×1