我一直在使用NVM为我的节点工作安装nodeJS的最新版本。 它完全适用于安装单独的版本和切换它们。 它还会在每个本地… / bin文件夹以及节点二进制文件中安装最新版本的NPM。 但是,似乎没有任何方法可以切换我使用的NPM版本(或者至less我无法弄清楚)。 我能想到的唯一解决scheme是删除默认的二进制文件(这是在我首次安装节点时安装的NPM),以及放置最新的NPM二进制文件的位置。 但是,我想知道是否有更好的方法去做这件事。
我仍然是相当新的承诺,目前正在使用蓝鸟,但我有一个情况,我不太清楚如何最好地处理它。 因此,例如我有一个快速应用程序中的承诺链如下所示: repository.Query(getAccountByIdQuery) .catch(function(error){ res.status(404).send({ error: "No account found with this Id" }); }) .then(convertDocumentToModel) .then(verifyOldPassword) .catch(function(error) { res.status(406).send({ OldPassword: error }); }) .then(changePassword) .then(function(){ res.status(200).send(); }) .catch(function(error){ console.log(error); res.status(500).send({ error: "Unable to change password" }); }); 所以我后面的行为是: 去Id获得帐户 如果在这一点上被拒绝,就会炸毁并返回一个错误 如果没有错误,则将返回的文档转换为模型 validation数据库文档的密码 如果密码不匹配,然后炸出来,并返回一个不同的错误 如果没有错误更改密码 然后返回成功 如果还有其他问题,请退回500 所以目前的捕获似乎并没有停止链接,这是有道理的,所以我想知道是否有一种方法让我以某种方式迫使链条停止在基于错误的某个点上,或者如果有更好的方法构造这个以获得某种forms的分支行为,因为存在if X do Y else Z 。 任何帮助将是伟大的。
我收到以下警告: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace: at EventEmitter.<anonymous> (events.js:139:15) at EventEmitter.<anonymous> (node.js:385:29) at Server.<anonymous> (server.js:20:17) at Server.emit (events.js:70:17) at HTTPParser.onIncoming (http.js:1514:12) at HTTPParser.onHeadersComplete (http.js:102:31) at Socket.ondata (http.js:1410:22) at TCP.onread (net.js:354:27) 我在server.js中写这样的代码: http.createServer( function (req, res) { … }).listen(3013); 如何解决这个问题?
假设我想对arr每个元素进行求和。 arr = [{x:1},{x:2},{x:4}] arr.reduce(function(a,b){return ax + bx}) >> NaN 我有理由相信斧头在某个时刻是不确定的。 以下工作正常 arr = [1,2,4] arr.reduce(function(a,b){return a + b}) >> 7 第一个例子我做错了什么?
在Windows上由于某些原因,当我运行npm install它不会安装devDependencies。 AFAIK它应该。 如果我运行npm install –dev devDependencies已经安装。 我不明白为什么npm install不会安装devDependencies,但只安装依赖项。 可能是什么原因? 我该如何解决? 也许smth是错误的我的package.json? 下面列出了它可能会有所帮助 { "name": "try-brunch", "version": "0.1.0", "private": "true", "devDependencies": { "brunch": "^2.0.4", "cssnano-brunch": "^1.1.5", "javascript-brunch": "^1.8.0", "sass-brunch": "^1.9.2", "uglify-js-brunch": "^1.7.8" }, "dependencies": { "jquery": "^2.1.4" } }
在我的Node应用程序中,我需要删除一个有一些文件的目录,但是fs.rmdir只能在空目录下工作。 我怎样才能做到这一点?
例如,一个HTTP REST API只是返回给我一个JSON,但当然这是一个string。 我怎样才能把它变成一个JSON?
这一行之间有什么区别: var a = parseInt("1", 10); // a === 1 和这一行 var a = +"1"; // a === 1 这个jsperftesting表明,一元运算符在当前chrome版本中快得多,假设它是为node.js !? 如果我尝试转换不是数字的string都返回NaN : var b = parseInt("test" 10); // b === NaN var b = +"test"; // b === NaN 那么我应该什么时候更喜欢使用parseInt加上一元加号(特别是在node.js中)? 编辑 :和双波浪号运算符~~什么区别?
我正在尝试使用express 4.x来设置nodejs应用程序。 在经历了中间件移除问题之后,我终于find了工作。 但是,在下面这行代码中有几条警告消息: app.use(session({secret: '<mysecret>'}) 这些警告是: Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11 Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11 在文档中,resave和saveUninitialized的默认值是true。 所以,改变代码来阅读 app.use(session({secret: '<mysecret>', saveUninitialized: true, resave: true})); 摆脱了警告。 那么,为了解决这个问题: 为什么我必须将这些值传入,如果他们是默认值,为什么我不必通过其他选项?
在Node.js中pipe理会话variables的最好方法是什么? 有没有图书馆?