我刚开始进入Node.js. 我来自PHP背景,所以我很习惯使用MySQL来满足我所有的数据库需求.
如何在Node.js中使用MySQL?
有关使用fs.readdir进行异步目录搜索的任何想法吗?我意识到我们可以引入递归并调用读取目录函数与下一个目录来读取,但有点担心它不是异步...
有任何想法吗?我看过node-walk这很棒,但是不给我一个数组中的文件,比如readdir.虽然
寻找像...的输出
['file1.txt', 'file2.txt', 'dir/file3.txt']
Run Code Online (Sandbox Code Playgroud) 我有一个JSON文件,我需要迭代,如下所示...
{
"device_id": "8020",
"data": [{
"Timestamp": "04-29-11 05:22:39 pm",
"Start_Value": 0.02,
"Abstract": 18.60,
"Editor": 65.20
}, {
"Timestamp": "04-29-11 04:22:39 pm",
"End_Value": 22.22,
"Text": 8.65,
"Common": 1.10,
"Editable": "true",
"Insert": 6.0
}]
}
Run Code Online (Sandbox Code Playgroud)
数据中的键并不总是相同的(我刚刚使用了示例,有20个不同的键),因此,我无法设置我的脚本以静态引用它们来获取值.
否则我可以说
var value1 = json.data.Timestamp;
var value2 = json.data.Start_Value;
var value3 = json.data.Abstract;
etc
Run Code Online (Sandbox Code Playgroud)
在过去,我在数据节点上使用了一个简单的foreach循环...
foreach ($json->data as $key => $val) {
switch($key) {
case 'Timestamp':
//do this;
case: 'Start_Value':
//do this
}
}
Run Code Online (Sandbox Code Playgroud)
但是不想阻止脚本.有任何想法吗?
关于Backbone中的事件的快速问题 - 有没有办法定义一组全局事件,可以在不同的视图中重用?
例如 - 假设我在页面上呈现了几个视图.每个视图都有一个按钮,可以展开菜单.还有其他一些通用元素和事件.如果不把这个事件逻辑到每个查看,是否有这些意见可以继承,或从全局事件定义拉这些事件的方法吗?通过在一个地方定义这些通用事件,它肯定会节省时间并成为更清洁的解决方案.
我已经看到了诸如Event Aggregator和Factory模式之类的术语 - 但不确定最佳方法(或者它们是否会实现我所追求的目标).
作为Backbone.js的新手,只是想澄清一下这个简单任务的正确方法.
几乎总是开发一个Web应用程序,您将拥有用户帐户,用户可以登录到您的应用程序,并查看他们的个性化数据.通常,他们的页面可能会显示一些小部件,他们的用户信息(名称,头像等).
现在,为每个小部件创建一个模型并将它们分组到一个Collection中是一个简单的概念.但是,他们的用户信息是否会存储在一个单独的模型中,这不会是一个集合的一部分?
如果是这样,如何与应用程序的其余部分联系起来?请原谅我的无知,但是我还没有遇到任何不解释模型的例子,这些模型不在集合中使用它们(用户和用户,狗,猫和动物等)
无论如何,对于长篇解释感到遗憾.我会寻找任何资源让我开始制作一个真实世界的应用程序,而不是ToDo应用程序(这对于基本概念理解非常有用)
只是想要一个意见,或者至少是一个经验法则,在CouchDB的数据库结构中哪个更好.在单个文档中包含项目的所有相关数据,或者在许多文档中包含所有项目的一部分是否更好?
让我举一个例子来说明我的意思.我目前记录来自我们系统的4个事件,间隔1分钟,我们称之为event_1,event_2,event_3和even_4.无论价值如何,都会为4个事件中的每个事件存储数据(即使一切正常,您也总能得到一个值).
选项1:分组事件,并将新的时间戳/值附加到文档中......
{
event_1: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_2: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
},
{
event_3: [
{ timestamp, value },
{ timestamp, value },
{ timestamp, value },
...etc
]
}
...etc
Run Code Online (Sandbox Code Playgroud)
选项2:保留一份包含最新值的文档列表(这些文档是如何从系统中实际传递的)?
{
timestamp: {
{ event_1, value },
{ event_2, value },
{ event_3, value },
{ event_4, value } …Run Code Online (Sandbox Code Playgroud) 我目前正在使用nodeJS中的一个脚本来监视一个目录(以及它的子目录),并在文件被放置到那里后执行一些功能.实际上,这将是一个FTP,用户上传文件,处理,然后删除.
显然,我已经看到脚本的CPU使用量很高,因为它遍历目录,等待文件可见.但令我担心的是,脚本运行的时间越长,内存使用率就越高(它只是呈指数级增长).是否有一些轻量级的方法来监控目录的变化?
谢谢!
编辑:我目前正在使用手表树,这是伟大的,但仍然有增加内存的问题.
一直在努力使这个简单的例子使用socket.io努力工作.我最初在使用Cygwin的Windows 7上尝试过.此后也尝试过OS X,结果相同.
运行脚本时,它会显示...
2 May 20:57:47 - socket.io ready - accepting connections
Run Code Online (Sandbox Code Playgroud)
但访问index.html页面并没有显示客户端甚至连接.
的index.html
<html>
<head>
<script type="text/javascript" src="socket.io.js"></script>
<script type="text/javascript">
var socket = new io.Socket('localhost',{'port':8090});
socket.connect();
socket.on('connect', function(){
console.log('connected');
socket.send('hi!');
});
socket.on('message', function(data){
console.log('message recived: ' + data);
});
socket.on('disconnect', function(){
console.log('disconected');
});
</script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
server.js
var http = require('http'), io = require('socket.io'),
server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<h1>Hello world</h1>');
});
server.listen(8090);
var socket = io.listen(server);
socket.on('connection', function(client){
console.log('client connected');
client.on('message', function(){
console.log('message arrive'); …Run Code Online (Sandbox Code Playgroud) 只是想知道订阅我的CouchDB数据存储的最佳方式,以便如果沙发中的文档更新,KO视图也将更新(自动).这有可能吗?
下面是我到目前为止,它只是从user_info文档中获取用户名.
$.getJSON('http://localhost/couchdb/user_info', function(data) {
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
作为CouchDB的新手,只想讨论构建数据库和文档的最佳实践.我的背景来自MySQL,所以仍然试图处理文档驱动的数据库.
为了概述系统,我们有几个客户,每个客户都使用单独的数据访问一个单独的网站.每个客户端数据将拆分为自己的数据库.每个数据库都会不断插入数据(每5分钟,至少一年),用于记录事件.每5分钟创建一个带有时间戳和值的新文档.我们还需要存储一些有关客户端的信息,这是一个永远不会更新的单个文档(如果是这样,很少).
下面是一个客户端数据库的外观示例...
{
"_id": "client_info",
"name": "Client Name",
"role": "admin",
....
},
{
"_id": "1199145600",
"alert_1_value": 0.150
"alert_2_value": 1.030
"alert_3_value": 12.500
...
...
},
{
"_id": "1199145900",
"alert_1_value": 0.150
"alert_2_value": 1.030
"alert_3_value": 12.500
...
...
},
{
"_id": "1199146200",
"alert_1_value": 0.150
"alert_2_value": 1.030
"alert_3_value": 12.500
...
...
},
etc...literally millions more of these every 5 minutes...
Run Code Online (Sandbox Code Playgroud)
我的问题是,这种结构是否正确?我知道CouchDB是一个平面文件数据库,但数据库中将有数百万个时间戳/值文档.我可能只是挑剔,但它似乎对我来说有点混乱.
谢谢!
node.js ×5
couchdb ×3
backbone.js ×2
database ×2
asynchronous ×1
directory ×1
filesystems ×1
foreach ×1
javascript ×1
json ×1
knockout.js ×1
memory ×1
mysql ×1
readdir ×1
socket.io ×1
web ×1