Tag: node.js

nodejs中的单例模式 – 是否需要?

我最近遇到了关于如何在Node.js中编写单例的文章。 我知道require的文档说: 模块在第一次加载后被caching。 多次调用require('foo')可能不会导致模块代码被多次执行。 所以看起来,每个需要的模块都可以很容易地使用一个单例,而不需要单独的样板代码。 题: 上面的文章是否提供了创build单例的解决scheme?

node.js和node之间有什么区别?

我在我的机器(linux mint 15)中安装了node.js,当我运行node example.js ,它说: The program 'node' can be found in the following packages: * node * nodejs-legacy Try: sudo apt-get install <selected package> 那么node和nodejs有什么区别呢? 我以前都安装了node.js和node,但是当我运行node example.js ,web服务器根本不能启动。 所以我删除了节点并保留了node.js.

使用Node.js进行同步数据库查询

我有一个Node.js / Express应用程序,用于查询path中的MySQL数据库并将结果显示给用户。 我的问题是如何运行查询和阻塞,直到两个查询完成之前,redirect用户到他们要求的网页? 在我的例子中,我有2个查询需要完成之前,我呈现的页面。 如果我在查询1的“结果”callback中嵌套查询2,则可以使查询同步运行。但是,查询数量增加时,这会变得非常复杂。 我如何去同步运行多个(在这种情况下是2)数据库查询,而不是在之前的查询的'结果'callback中嵌套后续查询? 我已经看了Node模块中的'Flow control / Async goodies',并尝试了stream程js,但我无法使它与asynchronous查询一起工作。 下面列出的是我试图从“/ home”路线执行的2个查询。 节点专家可以解释“正确”的方式来做到这一点。 app.get('/home', function (req,res) { var user_array = []; var title_array = []; // first query var sql = 'select user_name from users'; db.execute(sql) .addListener('row', function(r) { user_array.push( { user_name: r.user_name } ); }) .addListener('result', function(r) { req.session.user_array = user_array; }); […]

在Node.js中等待多个callback的方式

假设你需要做一些依赖临时文件的操作。 既然我们在这里谈论Node,那么这些操作显然是asynchronous的。 什么是等待所有操作完成的惯用方法,以便知道何时可以删除临时文件? 下面是一些代码,显示我想要做什么: do_something(tmp_file_name, function(err) {}); do_something_other(tmp_file_name, function(err) {}); fs.unlink(tmp_file_name); 但是,如果我这样写,第三个调用可以在前两个有机会使用该文件之前执行。 我需要一些方法来保证前两个调用已经完成(调用它们的callback函数),然后继续前进,而不是嵌套调用(并使它们在实践中同步)。 我想过在callback中使用事件发射器,并将计数器注册为接收器。 柜台将收到完成的事件,并计算有多less操作仍在进行中。 当最后一个完成时,它会删除该文件。 但是有一个竞争条件的风险,我不知道这通常是如何做这件事情。 Node人如何解决这类问题?

如何通过Node.js连接到Postgres

我发现自己试图创build一个postgres数据库,所以我安装了postgres,并用initdb /usr/local/pgsql/data启动了一个服务器,然后我用postgres -D /usr/local/pgsql/data开始了这个实例。通过节点与此交互? 例如, connectionstring是什么,或者我怎么能够找出它是什么。

允许CORS REST请求到Heroku上的Express / Node.js应用程序

我在node.js的快速框架上编写了一个REST API,这个框架适用于Chrome中js控制台的请求和URL栏等等。我现在试图让它适用于来自另一个应用程序的请求域(CORS)。 第一个由javascript前端自动创build的请求是/ api / search?uri =,并且在“预检”选项请求中显示为失败。 在我的快速应用程序中,我添加CORS标题,使用: var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); // intercept OPTIONS method if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }; 和: app.configure(function () { app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(allowCrossDomain); app.use(express.static(path.join(application_root, "public"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true […]

在Windows上运行Python以获取Node.js依赖关系

我正在进入一个Node.js代码库,它要求我通过NPM(即jQuery)下载一些依赖关系。 在试图运行npm install jquery ,我不断收到此错误: Your environment has been set up for using Node.js 0.8.21 (x64) and NPM C:\Users\Matt Cashatt>npm install jquery npm http GET https://registry.npmjs.org/jquery npm http 304 https://registry.npmjs.org/jquery npm http GET https://registry.npmjs.org/jsdom npm http GET https://registry.npmjs.org/xmlhttprequest npm http GET https://registry.npmjs.org/htmlparser/1.7.6 npm http GET https://registry.npmjs.org/location/0.0.1 npm http GET https://registry.npmjs.org/navigator npm http GET https://registry.npmjs.org/contextify npm […]

如何使用Node.js Mongoose删除文档?

FBFriendModel.find({ id: 333 }, function (err, docs) { docs.remove(); //Remove all the documents that match! }); 以上似乎并没有工作。 logging还在那里。 有人可以修复?

npm通过package.json中的依赖来安装私人github存储库

我试图通过npm安装github私有存储库,其中包括其他私人github存储库作为依赖。 已经尝试了很多方式和post,但没有任何工作。 这是我在做什么: npm install git+https://github.com/myusername/mygitrepository.git 在package.json中是这样的: "dependencies": { "repository1name": "git+https://github.com/myusername/repository1.git", "repository2name": "git+https://github.com/myusername/repository2.git" } 什么是正确的做法呢?

基本的Ajax发送/接收与node.js

所以我试图做一个非常基本的node.js服务器,接受一个string的请求,从数组中随机select一个,并返回选定的string。 不幸的是我遇到了一些问题。 这是前端: function newGame() { guessCnt=0; guess=""; server(); displayHash(); displayGuessStr(); displayGuessCnt(); } function server() { xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET","server.js", true); xmlhttp.send(); string=xmlhttp.responseText; } 这应该发送请求到server.js: var http = require('http'); var choices=["hello world", "goodbye world"]; console.log("server initialized"); http.createServer(function(request, response) { console.log("request recieved"); var string = choices[Math.floor(Math.random()*choices.length)]; console.log("string '" + string + "' chosen"); response.on(string); console.log("string […]