在Node.js中编程并引用位于与当前目录相关的文件时,有没有理由使用__dirname变量而不仅仅是常规变量./?到目前为止,我一直在我的代码中使用./并且刚刚发现它的存在__dirname,并且基本上想要知道将./的转换为是否聪明,如果是这样,为什么这将是一个聪明的想法.
我一直在使用NVM为我的节点工作安装最新版本的nodeJS.它适用于安装单独的版本并在它们之间切换.它还在每个本地.../bin文件夹中安装最新版本的NPM以及节点二进制文件.但是,似乎没有任何方法可以切换我正在使用的NPM版本(或者至少我无法弄明白).
我能想到的唯一解决方案是删除它默认的二进制文件(这是我第一次使用NVM安装节点时安装的NPM),并取代它放置最新的NPM二进制文件.但是,我想知道是否有更好的方法可以做到这一点.
假设我有以下内容:
for(var i = 0; i < length; i++){
var variable = variables[i];
otherVariable.doSomething(variable, function(err){ //callback for when doSomething ends
do something else with variable;
}
Run Code Online (Sandbox Code Playgroud)
在调用回调时,variable将不可避免地成为所有回调的最后一个变量,而不是每个回调的不同变量,正如我所希望的那样.我意识到我可以传递variable给doSomething()然后作为回调的一部分传回,但是它doSomething()是外部库的一部分,我宁愿不要乱用它的源代码.
那些比我更了解JavaScript的人知道是否有其他方法可以做我想做的事情?
最好的,谢谢,
萨米
我的瓷砖需要遵守任何特定的规格吗?
我有一个大图像文件,我想用LeafletJS变成一张地图.我将使用Python Imaging Library将其切割成我需要的所有各种图块.
但是,我找不到有关在Leaflet中使用自定义地图的任何信息.我是否以某种方式为Leaflet提供X,Y,Z信息范围?我是否给它每个瓷砖的像素大小?它是否自己解决了这个问题?
将我的问题放在一个简洁的问题中:为了使图像文件能够与LeafletJS一起成为地图图块,我需要做些什么,以及在我的前端脚本中需要做什么?(除了明确指定我的自定义URL之外)
我有一个函数来检查请求是否有任何查询,并根据它执行不同的操作.目前,我已经if(query)做了别的其他事情.但是,似乎当没有查询数据时,我最终得到了一个{}JSON对象.因此,我需要更换if(query)用if(query.isEmpty())或者诸如此类的东西.任何人都可以解释我如何在NodeJS中做到这一点?V8 JSON对象是否具有此类功能?
如果我有一个变量,JavaScript会发生什么,比如说:
var exampleObject = {one:'foo',two:'bar'};
Run Code Online (Sandbox Code Playgroud)
然后我删除了一个不存在的属性,一个la:
delete exampleObject.seven;
Run Code Online (Sandbox Code Playgroud)
是否有标准的操作过程发生在任何地方(没有,错误消息,脚本崩溃等),或者这取决于某种实现(浏览器引擎等)?
我运行一个运行在nodeJS + mongoDB后端的网站.现在,我正在实现一个系统来存储需要在数据库中的一些图标(小图像文件).
根据我的理解,不使用GridFS更有意义,因为它似乎是针对大文件或大量文件而定制的.由于我需要保存的每个文件都在BSON最大文件大小之下,我应该能够将它们直接保存到常规文档中.
我有两个问题:
1)我的推理是否正确?将图像文件保存在常规mongo集合中是否可以,而不是使用GridFS?在这里我有什么不考虑的吗?
2)如果我的思维过程合理,我该怎么做呢?我可以做以下事情:
//assume 'things' is a mongoDB collection created properly using node-mongodb-driver
fs.readFile(pathToIconImage, function(err,image){
things.insert({'image':image}, function(err,doc){
if(err) console.log('you have an error! ' + err);
});
});
Run Code Online (Sandbox Code Playgroud)
我猜这可能有更好的方法,因为mongoDB使用BSON,在这里我试图在将数据发送到数据库之前用JSON保存文件.我也不知道这段代码是否有效(没试过).
更新 - 新问题
如果我在集合中有一个文件,其中保存了三条信息:1)名称,2)日期,3)图像文件(上面的图标),我想按顺序将此文档发送给客户显示所有三个,这可能吗?如果没有,我想我需要使用GridFS并保存fileID来代替图像本身.思考/建议吗?
最好的,谢谢你的任何回应,
萨米
默认情况下,当leafletJS加载地图时,背景图块都是灰色的.我想将该颜色更改为黑色(或任何其他任意颜色).我该怎么做呢?
首先 - 关于我的背景:我已经编程了一段时间(此时为10年),并且在编写想法时非常称职.我在一年多前开始从事网络应用程序编程工作,幸好发现了nodeJS,它使网络应用程序的创建感觉更像传统的编程.现在,我有一个node.js应用程序,我已经开发了一段时间,现在正在网络上生产.我的主要困惑源于这样一个事实,即我对Web开发世界很陌生,并且在监控我的应用程序时并不知道什么是重要的,什么是不重要的.
我正在使用Joyent SmartMachine,看看他们提供的分析选项有点压倒性.有很多不同的选项和配置,我不知道每个分析真正起作用的目的.对于下面的问题,我会感谢任何答案,无论是针对Joyent的云分析还是完全一般的.
现在,我主要关心的是弄清楚我的应用程序如何利用我运行的服务器.我想知道我的应用程序是否分配了适当数量的资源.它收到的请求数量是否会使服务器过度使用,还是需要额外的资源?为此目的,为NodeJS应用程序查看哪些分析非常重要?(如果有不同的话,在单独的服务器上使用MongoDB和Redis)
在管理正在生产的服务器时,还有哪些其他统计数据通常非常重要?我习惯于运行一次以执行特定操作的程序(例如,一旦计算出图像就完成运行的光线跟踪器),而不是连续运行并与许多客户端交互的web应用程序.我确信有很多事情对长期服务器管理员来说是显而易见的,而不是像我这样的新手.
在具体处理NodeJS时要注意什么?在处理NodeJS的单线程事件循环与更标准的服务器系统时,哪些统计/分析变得特别重要?
我还有其他关于数据库如何发挥作用的问题,但我认为这已经足够了...