Tag: node.js

如何用Karma(testacular)testingnodejs后端代码

如何设置Karma来运行我的后端unit testing(使用Mocha编写)? 如果我将后端testing脚本添加到files = [] ,则会失败,说明require是未定义的。

生产代码中的mongoose索引

根据MongooseJS和MongoDB / Node.js的Mongoose 文档 : 当您的应用程序启动时,Mongoose将自动为您的模式中定义的每个索引调用ensureIndex 。 尽pipe对开发很好,但build议在生产中禁用此行为,因为索引创build可能会对性能产生重大影响。 通过将模式的autoIndex选项设置为false来禁用此行为。 这似乎指示从部署之前从mongoose中删除自动索引,以优化Mongoose从指示Mongo到应用程序启动时通过所有索引进行转移,这似乎是有道理的。 在生产代码中处理索引的正确方法是什么? 也许外部脚本应该生成索引? 或者,如果单个应用程序是集合的唯一读取器/写入器,那么ensureIndex是不必要的,因为每次发生数据库写入时它都会继续索引。 编辑:为了补充,MongoDB为如何做索引提供了很好的文档 ,但不是为什么或什么时候显式索引指令应该完成。 在我看来,索引应该由ensureIndex器应用程序在具有现有索引的集合上自动保持最新,并且ensureIndex实际上更多是一次性的事情(在新索引被应用时完成),在这种情况下,Mongoose的autoIndex应该在正常服务器重新启动的情况下为空操作。

npm:禁用软件包的安装后脚本

是否有任何npm选项存在禁用安装包后安装脚本? 或从package.json重写任何字段?

Npm安装失败,“无法在wd中运行”

我试图让我的节点环境设置在一个新的Ubuntu 12.04实例上,并且已经安装了Node.l0.14,但是当我尝试运行npm install时遇到了问题。 所以当我尝试npm install ,它说我需要以root或者admin的身份运行它: Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script' npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/usr/local/lib/node_modules/coffee-script', npm ERR! fstream_type: 'Directory', npm ERR! fstream_path: '/usr/local/lib/node_modules/coffee-script', npm ERR! fstream_class: 'DirWriter', npm ERR! fstream_stack: npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)', npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53', npm ERR! 'Object.oncomplete […]

Node.js或Erlang

当涉及到它可以处理的并发级别时,我真的很喜欢这些工具。 Erlang看起来更稳定的解决scheme,但需要更多的学习和大量的function语言范例。 看起来Erlang在多核CPU方面更好(修复了我的错误)。 但是我应该select哪一个? 从短期/长期来看,哪一个更好? 我的目标是学习一个工具,它使得我的web项目在高负载下的扩展比传统语言更容易。

Gulp-autoprefixer抛出ReferenceError:Promise没有定义

我试着做一个大嘴巴编译我的sass然后用gulp gulp-autoprefixer但我得到一个错误。 var gulp = require('gulp'), sass = require('gulp-sass'), autoprefixer = require('gulp-autoprefixer'); gulp.task('test', function(){ gulp.src('_sass/main.sass') .pipe(sass()) .pipe(autoprefixer()) .pipe(gulp.dest('./assets/css')); }); 我试图运行这个Gulpfile.js ,我正在使用: "gulp": "~3.9.0", "gulp-sass": "~2.0.4", "gulp-autoprefixer": "~3.0.1", 和NPM版本1.3.10 当我运行gulp test我得到这个: /home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152 this.processing = new Promise(function (resolve, reject) { ^ ReferenceError: Promise is not defined at LazyResult.async (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:152:31) at LazyResult.then (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/node_modules/postcss/lib/lazy-result.js:75:21) at DestroyableTransform._transform (/home/matei/Tests/test-4/node_modules/gulp-autoprefixer/index.js:28:13) at DestroyableTransform.Transform._read […]

NodeJS:如何获取服务器的端口?

您经常会看到Node的示例hello world代码,它创build一个Http Server,开始监听一个端口,然后是以下内容: console.log('Server is listening on port 8000'); 但理想情况下,你会想要这个: console.log('Server is listening on port ' + server.port); 如何在调用server.listen()之前检索服务器当前正在侦听的端口,而不将该号码存储在variables中? 我以前见过这个,但是我在Node文档中找不到它。 也许这是特定的expression?

快递:如何将应用程序实例传递给来自不同文件的路线?

我想将我的路线分成不同的文件,其中一个文件包含所有路线,另一个文件包含相应的操作。 我目前有一个解决scheme来实现这一点,但是我需要使应用程序实例全局能够访问它的行动。 我目前的设置是这样的: app.js: var express = require('express'); var app = express.createServer(); var routes = require('./routes'); var controllers = require('./controllers'); routes.setup(app, controllers); app.listen(3000, function() { console.log('Application is listening on port 3000'); }); routes.js: exports.setup = function(app, controllers) { app.get('/', controllers.index); app.get('/posts', controllers.posts.index); app.get('/posts/:post', controllers.posts.show); // etc. }; 控制器/ index.js: exports.posts = require('./posts'); exports.index = function(req, […]

“npm”不被识别为内部或外部命令,可操作程序或batch file

这可能是我的一个非常愚蠢的错误,但现在正在杀死我。 我对nodejs是全新的。 我试图让Nodejs工作在我的Windows 2008中,以便安装我将用于TDDing我AngularJs代码的Karma。 到目前为止,我已经完成了以下步骤 使用Chocolatey安装==> npm不被识别 使用来自nodejs.org的64位nodejs安装程序进行安装==>不能识别npm 在这个阶段,运行where npm给我的c:\User\<Username>\AppData\Roaming\npm里面没有任何东西 我发现nodejs安装在C:\Program Files\nodejs 。 在这个目录下打开一个命令提示符使npm正常工作。 所以我添加了C:\Program Files\nodejs到PATH只是为了再次得到相同的错误, npm is not recognized nodejs仓库的github问题之一说我需要重新启动机器,它会修复。 但是这并没有帮助到目前为止 我看到一个Node.js图标在我的Start -> Programms mennu,它把我带到nodejs控制台,但不知道该怎么做。 我错过了这个过程中的重要一步吗? ==编辑==== 我想,如果我从程序文件中打开“Nodejs命令提示符”,那么npm被识别。 我如何使它在正常的命令提示符下工作? ===编辑=== 我其实忘了我有这个问题。 node之后,我开始面对另一个应用程序的类似问题。 我把这个问题发布在超级用户上,正如被接受的答案所指出的那样,我在PATH有一个额外的引用,这引起了引用之后添加的所有path的问题。 我有一种感觉,一些巧克力装置添加这个令人不安的报价,但我只是不知道哪一个。 既然这个问题没有直接的答案,我不知道如何处理这个问题。

Node.js与Akka的actor模式有什么不同?

我已经和Node.js一起工作了一段时间,认为自己对Java很好。 但是我刚刚发现了Akka ,并立即对其演员模式感兴趣(据我所知)。 现在,假设我的JavaScript技能与我的Scala / Java技能相当,我想把重点放在两个系统的实用性上。 特别是在Web服务方面。 我的理解是,Node在处理许多并发操作方面非常出色。 我想象一下,一个好的Node资源pipe理系统的Web服务在处理很多用户同时提交更改(在一个大型的,大stream量的应用程序中)方面会很出色。 但是在阅读完Akka的演员之后,它会觉得它会在同样的事情上performance出色。 我喜欢把工作减less到一口大小的想法。 此外,多年前我涉足Erlang,并爱上了它所使用的消息传递系统。 我在处理复杂业务逻辑的许多应用程序上工作,我认为是时候跳入一个或另一个。 尤其是升级传统的Struts和C#应用程序。 无论如何,避免圣战,这两个体系有什么根本的不同呢? 看起来两者都是为了同一个目标。 也许Akka的“自我修复”架构具有优势。 编辑 看起来我正在接近选票。 请不要把这个问题当作“哪个更好,节点还是阿卡?”。 我正在寻找的是像Node这样的基于事件驱动的库和Akka等基于actor的基本差异。