我正在创build我的第一个真正的node.js http服务器,我有点溺水了。 作为一名好老师,我总是说:“现在我只是把你推到水里,然后我会告诉你如何游泳。” 幸运的是,她不是一个游泳教练,但这是一个很好的比喻。 我觉得我跳进了node.js,我只find了一个乒乓球帮助,也就是说,我读过的大部分教程在“Hello World”示例后不久就停止了,主要是试图弄清楚复制和粘贴的代码(或者他们认为我已经具备了作为Apache / PHP开发人员为我完成的底层HTTP和Web服务器概念的知识)。 我在客户端Javascript和PHP都有经验,但节点似乎是一个自己的野兽。 我不太需要创build一个节点服务器所需要的低级知识,连接似乎是一个简化事物的好模块,甚至在其Git上的文档中也似乎很less被解释。 我在哪里可以find一些教程来帮助我在这种情况下? TL; DR – 有没有关于node.js的任何教程超越“Hello World”,但不需要太多的低级知识? 或者任何解释我需要有效创build节点HTTP服务器的低层HTTP和Web服务器概念的教程?
我写了我的第一个node.js应用程序,但无法find快速库: C:\ChatServer\Server>node server.js module.js:340 throw err; ^ Error: Cannot find module 'express' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\ChatServer\Server\server.js:6:9) at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) 但是表示安装(用-g键): C:\ChatServer\Server>npm install -g express npm http GET https://registry.npmjs.org/express npm http 304 https://registry.npmjs.org/express […]
我是node.js的新手,但很高兴尝试一下。 我使用Express作为Web框架,而Jade作为模板引擎。 按照Node Camp的 这个教程 ,两者都很容易设置。 然而,我发现的一个问题是我找不到一个简单的教程来获取数据库设置 。 我正在尝试构build一个基本的聊天应用程序(商店会话和消息)。 有谁知道一个很好的教程? 这个其他的SOpost讨论了dbs的使用 – 但是因为这与我所在的Django / MySQL世界有很大的不同,所以我想确保我理解到底是怎么回事。 谢谢!
我正在寻找处理与节点的文本文件使用命令行调用如: node app.js < input.txt 文件的每一行都需要单独处理,但一旦处理完,input行就会被遗忘。 使用标准input的数据监听器,我得到了一个字节大小的inputstream,所以我设置了它。 process.stdin.resume(); process.stdin.setEncoding('utf8'); var lingeringLine = ""; process.stdin.on('data', function(chunk) { lines = chunk.split("\n"); lines[0] = lingeringLine + lines[0]; lingeringLine = lines.pop(); lines.forEach(processLine); }); process.stdin.on('end', function() { processLine(lingeringLine); }); 但是,这似乎是如此草率。 必须围绕线arrays的第一个和最后一个项目进行按摩。 有没有更好的方法来做到这一点?
我正在尝试关注NodeJs的教程。 我不认为我错过了什么,但每当我打电话给process.env.NODE_ENV我唯一的价值是未定义的。 根据我的研究,默认值应该是“发展”。 这个值是如何dynamic设置的,最初是在哪里设置的?
情况 我想在Windows托pipe的开发环境中使用gulp和相关的前端工具链。 我正在尝试使用诸如Browser-Sync之类的gulp插件,因为node_modules文件夹graphics扇出Windows文件path太长而无法复制文件。 我想现在在Windows上处理这个问题的一个实用的方法,无论Node社区将来可能提供或不提供的npm在Windows上的可用性。 2个问题 是否有一个Windows的npm工作stream程,只是按照预期的方式工作? “运行命令和文件安装”(例如,可以与OSX上的npm,Linux上的npm,ruby gems甚至nuget相媲美)每次我使用时,我都不想摆弄一大堆手动文件编辑,符号链接等Windows上的npm。 是否有一个良好的文档,稳定的Cygwin工作stream程npm和节点执行解决Windows API文件path限制? 血淋淋的细节下面列出… 一般问题 从标准的Windows命令提示符下运行npm install会导致深度嵌套的node_modules层次结构失败。 根据Joyent的github repo线程, 这是一个公认的问题 ,在Windows中心环境下对于开发人员来说没有可行的解决方法。 ( 真的吗? ) NT内核支持长达32,767个字符的文件path。 Windows API的MAXPATH限制为260个字符。 Windows API处理所有主要的Windows shell的文件操作,包括:资源pipe理器,CMD,Powershell,MYSgit bash等( MS真的吗?NTFS多久了? ) Cygwin支持长文件path,但由于crlf格式的原因,npm.cmd不能正常工作。 我尝试了npm上的DOS2Unix转换来使它与Cygwin一起工作,但似乎还有其他的问题。 我目前的黑客 创build一个“n”文件夹作为C:\的根目录区域,因为这缩短了我的文件夹path。 在“n”文件夹下运行npm,为我需要的任何东西安装模块。 启动Cygwin并使用cp将node_modules文件夹复制到目标项目中。 当依赖关系发生变化或需要启动新项目时,请清洗并重复。 其他难吃的变通办法 符号链接可以用来缩短文件path,但这些都是黑客攻击。 随着npm生态系统的增长,嵌套的依赖关系链将变得太长,并且此解决方法变得无法使用。 将所有依赖添加到根文件夹的package.json文件是在我遇到的一个线程中提到的。 虽然这种方法会使文件夹结构扁平化并防止重复模块的加载,但是这种解决方法感觉不自然。 它也会杀死npm的可用性,耐用性和生产力,因为你必须手动或者用一些黑客脚本来手动安装文件和文件夹。 该方法也容易受到符号链接方法可能最终遭受的相同命运的影响。
由于我已经了解了Node.js,所以我一直都很喜欢它。 但是今天我发现了SignalR ,它为ASP.NET提供了另一种asynchronous可伸缩的实时模型。 据我所知,Node.js优于SignalR的主要优点是在客户端服务器之间共享代码(另一个优势应该是它是跨平台的),而SignalR的主要优势是更成熟的框架,更好工具(IDE)支持。 所以我想知道:如果SignalR在这里,我们是否需要Windows上的Node.js? 有没有Node.js的优点,我不知道?
npm update似乎只是更新dependencies包,但devDependencies ? 现在你可以通过运行npm install .来安装devDependencies npm install . ,但这不适用于npm update . 有任何想法吗?
对于一个新的模块,我正尝试使用npm build而不使用npm build / Grunt /其他专门的构build工具。 "scripts": { "build": "node build.js" }, 我的build.js很简单 console.log('Hello') 但是,运行 npm build 只需退出而不打印任何内容,状态为0。 运行: npm install 也做所有正常的事情,但不运行build.js。 我怎样才能让npm运行我的构build脚本? 编辑:甚至简单的bash命令似乎不起作用,例如 "scripts": { "build": "touch TESTFILE" }, 不要用这个名字制作一个文件。
由于Javascript 1.7有一个Iterator对象,它允许这样做: var a={a:1,b:2,c:3}; var it=Iterator(a); function iterate(){ try { console.log(it.next()); setTimeout(iterate,1000); }catch (err if err instanceof StopIteration) { console.log("End of record.\n"); } catch (err) { console.log("Unknown error: " + err.description + "\n"); } } iterate(); 在node.js中有这样的东西吗? 现在我正在使用: function Iterator(o){ /*var k=[]; for(var i in o){ k.push(i); }*/ var k=Object.keys(o); return { next:function(){ return k.shift(); […]