阅读Mongoose文档我有点困惑.
如果我运行猫鼬其中没有匹配的文档集合中的查询,什么都值err,并results在回调函数callback(err, results)?我只是不知道Mongoose认为是什么"错误".作为一名数学家,返回空集(即results数组为空)似乎完全有效,不应该是"错误" - 查询执行正常,没有匹配的文档.另一方面,有些人可能认为这是"错误".来自mongoose docs,要么:
err= null,results= []err= null,results= nullerr=错误文档,results= null我可能不太了解Node的事件循环.
假设我有一个foo包含异步函数的函数async_func.我有吗
//1
function foo(callback) {
//stuff here
async_func(function() {
//do something
callback();
});
//this eventually get executed
}
Run Code Online (Sandbox Code Playgroud)
要么
//2
function foo(callback) {
//stuff here
async_func(function() {
//do something
return callback();
});
//never executed
}
Run Code Online (Sandbox Code Playgroud) 似乎Mongoose在内部做了一些非常时髦的事情.
1 var Foo = new mongoose.model('Foo', new mongoose.Schema({a: String, b: Number}));
2 var foo = new Foo({a: 'test; b: 42});
3 var obj = {c: 1};
4 foo.goo = obj; // simple object assignment. obj should be
// passed by reference to foo.goo. recall goo
// is not defined in the Foo model schema
5 console.log(foo.goo === obj); // comparison directly after the assignment
// => false, doesn't behave like normal JS object
Run Code Online (Sandbox Code Playgroud)
基本上,任何时候你试图处理Mongoose模型的属性,而不是a)在模型的模式中定义或b)被定义为相同的类型(array,obj,..)......模型甚至都没有表现得像一个普通的Javascript对象.
切换第4行以foo._doc.goo = …
我是Node.js的新手,但很像模块系统和require().话虽如此,来自C背景,让我感到不安的是看到同样的模块require()到处都是.总而言之,它引导我做出一些偏离C中事情的设计选择.例如:
require()在定义猫鼬模型的每个文件中进行mongoose?或者将mongoose实例注入到定义模型的每个文件中.require()在每个需要它们的模块中使用我的猫鼬模型吗?或者让模型提供者传递并用于提供这些模型.等.对于那些经常使用依赖注入的人 - 我的直觉C感觉只告诉我require()一个模块,并根据需要传递它.但是,在看了一些开源的东西之后,这似乎并不是Node的方式.require()确实让事情变得非常容易..
过度使用这种机制是否有害?
关于Express如何提供文件,我有点困惑.
目前我有一个/public目录来保存客户端资源.我使用配置Express
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
我的印象是这个目录中的任何内容都是公共的,并且HTTP方法url默认/public为访问的根目录(除非由Express手动路由).
在这个目录中的任何文件上使用GET都没有问题(客户端脚本,图像等等.但是,当我尝试在这个目录中POST文件时,我得到了404.我是否需要手动路由所有POST请求ala
app.post(route, callback)
谢谢你的帮助
我正在尝试为我的元素动态分配样式(在本例中为ExtJS displayfield).
我不能使用CSS类,因为我不知道运行时的颜色是什么.
我尝试着:
myDisplayField.getEl().applyStyles({ color: '#ff0000' }); //fail
myDisplayField.getEl().setStyle('color', '#ff0000'); //fail
Run Code Online (Sandbox Code Playgroud)
只是为了让机制正确,但似乎都不起作用.
它可以使用Ext.get(<div id>).setStyle(...),但这对我来说似乎并不干净.以前的尝试是否有效?
我错过了什么?谢谢.
我不明白ExtJS 中alias vs id vs itemId配置属性的用法
应用程序/视图/ foo.js
Ext.define('app.view.foo', {
...
alias: 'widget.foo', // 1
id: 'foo', // or 2
...
});
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ goo.js
Ext.define('app.controller.goo', {
...
views: ['foo', ...],
init: function() {
this.control({
'foo': {...}, // 1
'#foo': {...} // or 2
...
});
...
},
...
});
Run Code Online (Sandbox Code Playgroud)
随着alias我可以使用xtype容易..但我通过设置获得什么好处id的,以我的看法?
我只是干净(重新)安装了Vim(从vim.org/download.php下载,使用了gvim73_46.exe安装程序.版本是7.3(补丁1-46)
我的_vimrc唯一的变化是设置行号,行,列和启用语法.
每次我用vim编辑文件,保存并关闭它(:wq),就会在该文件目录中创建一个新的 _viminfo文件.
此外,备份*.*~文件和.swp文件仍然存在,并且在保存时不会被清除.运行Windows 7企业版.
这真的使一切变得混乱 - 并且试图打开存在文件的文件是一种痛苦.swp.帮助?
这个问题不是如何连接和缩小js代码 - 它是什么时候,应该做什么.(也许是JS从客户端入侵服务器的结果)
根据我的理解,连接代码是一种减少脚本请求数量的手段.因此,此任务应该在将被请求并在客户端中运行的JS上运行 - 连接在Node上运行的文件将没有任何用处.
另一方面,缩小作为一种在不影响功能的情况下减少脚本总大小的技术,从而减少了请求中传输的比特数.同样,这种技术似乎最适用于打算传输到客户端的代码.
在我的服务器上运行的JS上执行这些任务可以获得任何性能提升吗?
node.js ×6
mongodb ×3
mongoose ×3
extjs ×2
extjs4 ×2
architecture ×1
asynchronous ×1
database ×1
express ×1
javascript ×1
minify ×1
vi ×1
vim ×1
windows ×1