Articles of javascript

Expressjs bodyParser和连接forms

我用连接forms上传图像。 但是,如果我使用bodyParser()它是行不通的。 而相反,如果我不使用bodyParser,我不能上传文件? 我如何让他们一起玩? 这是我的configuration: app.configure(function() { app.register('.html', require('ejs')); app.set('views', __dirname + '/../views'); app.set('view engine', 'html'); app.use(gzippo.staticGzip(__dirname + '/../public'),{ maxAge: 86400000 }); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(form({ keepExtensions: true, uploadDir: __dirname + '/../tmp' })); app.use(express.cookieParser()); app.use(express.session({ secret: 'test', cookie: { secure: true }, store: new MySQLSessionStore(client.database, client.user, client.password) })); app.use(expressValidator); app.use(app.router); app.use(express.csrf()); });

我应该如何去写一个node.js Web应用程序与服务器和客户端代码?

我正在计划编写一个spine / backbone.js风格的Web应用程序,它基本上只是将一个大的application.js文件传输到客户端的浏览器,该浏览器使用ajax与node.js后端进行通信。 问题是我不知道如何构build这样的项目,因为我从来没有见过这样的应用程序的例子。 我可以用不同的方式来描述一些优点和缺点 将所有内容保存在一个项目文件 服务器端和客户端代码都驻留在相同的文件夹中,这意味着它们可以共享资源,例如表单inputvalidation和语言文件。 这似乎是一个很好的解决scheme,但我不知道如何捆绑客户端需要的代码,而不是服务器代码。 只是在一般情况下,我不知道如何做到这一点。 如果之前已经完成,我想看一些示例代码,甚至可能是一个git回购 创build两个单独的项目。 一个用于客户端,另一个用于服务器。 这似乎更简单直接,但在共享资源方面却不尽如人意。 我将不得不编写两次表单inputvalidation等代码。 有什么想法吗?

我可以在客户端(express / node.js)使用PostgreSQL(pg)

我想在客户端使用PostgreSQL。 那可能吗? 我可以有这个代码吗? 在我的server.js var pg = require('pg'); 在我的客户端 var conString = "postgres://postgres:pass@localhost/mydb"; var client = new pg.Client(conString); client.connect(); var query = client.query("SELECT * FROM users "); query.on('row', function(row) { alert(row.name); }); 我试过这个代码,但没有发生。 虽然我可以有一个类似这样的代码,在那里我连接PostgreSQL和在客户端脚本上使用查询。

Expressjs不会销毁会话

我有一个骨干视图,它发送一个Ajax调用服务器来删除一个会话。 在服务器上触发以下事件: app.delete('/session', function(req, res) { if (req.session) { req.session.destroy(function() { res.clearCookie('connect.sid', { path: '/' }); res.send('removed session', 200); }); } else { res.send('no session assigned', 500); } }); 奇怪的是,我可以多次按下注销button,而不会得到一个HTTP 500的错误代码。 铬也显示我仍然存在一个cookie。 出了什么问题? 问候 编辑 : 我发现这不是一个会话问题,而是一个cookie。 我添加res.clearCookie到路线。 不幸的是,行为(cookie,会话保持活跃)没有改变 编辑2 :我现在res.clearCookie一些参数=> res.clearCookie('connect.sid',{path:'/'}); 现在至lesscookie在浏览器中消失了。 但会议似乎仍然可用。 或者至less我可以多次呼叫注销路线,即使req.session也应该是错误的 编辑3:我现在从redis中删除所有会话,并重新启动一切(redis,节点,浏览器)。 比我再次login并注销。 这个工作到目前为止,但是当我用F5来翻页时,我得到一个新的会话。 为什么?

npm为JavaScript客户端代码

我正在阅读有关npm开发人员指南的文档。 我想知道是否有可能使用npm编写一个使用javascript / css / html的networking客户端应用程序? 如果是的话,github上有一些例子吗? 例如,我的客户端Web应用程序依赖于requirejs, jquery, underscore and backbone 。 我可以使用npm自动下载供应商目录中的最新版本的requirejs, jquery, underscore and backbone吗? 如果不是,还有其他的工具/方法来达到这个目标吗?

带有Node.js的数据库inheritance模型

使用Node.js和一个类似于SQL的数据库,在实现数据库inheritance模型时,我有什么select? 我环顾四周,似乎由于Node.js中noSQL数据库的stream行,数据库inheritance被忽略了。 我试图完成一个非常简单的事情:基于一些业务规则扩展一个用户表。 为了简单起见,我想要添加读者和主持人的表和类的属性会有所不同。 这是在使用NHibernate的.NET中相对容易完成的事情。 我可以达到相同的结果,而不用粘在同一张表的所有内容? 如果不是,最好的select是什么? 顺便说一句,我通过Sequelize与PostreSQL使用Node.js。

如何将JS Bin下载到我的电脑中进行编码

我是JavaSript的新手,我喜欢JS Bin ,但是在桌面上,没有什么东西对于开发是一样的。 有没有办法与JS斌没有访问的网站?

快速会话不会持续

我正在尝试在节点中build立一个基本的会话系统。 这是迄今为止我所得到的: app.js: app.use(express.cookieParser('stackoverflow')); app.use(express.session()); 我在ajax.js中设置会话数据: addClassToCart: function(req, res) { req.session.cart = req.body.classId; console.log(req.session.cart); } 这logging了正确的信息。 但是,当我尝试在其他地方(相同的文件,不同的function)检索该信息时: console.log(req.session.cart); 我弄undefined明白 我觉得我失去了一些非常基本的东西。 各种各样的教程是可怕的或要求我添加更多的包(我试图避免的东西)。 从我的debugging更多的数据: 这适用于非AJAX请求 会话在logging之前设置。

Zombie.js不会返回完整的HTML

我刚刚testing了Zombie.js,我让它访问StackOverflow上的login页面。 我的代码如下: var Browser = require("zombie"); // Load the page from localhost browser = new Browser() browser.visit("http://stackoverflow.com/users/login/", function () { browser.wait(3000, function (){ console.log(browser.html()); console.log(browser.success); }); }); 我试着环顾四周,我知道Zombie.js运行脚本并压缩HTML,但是在这种情况下,整个代码体缺失。 我不相信这是相关的,但返回的HTML代码是: <html><head> <title>Log In – Stack Overflow</title> <link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico" /> <link rel="apple-touch-icon" href="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" /> <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" /> <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script><script type="text/javascript" […]

Node.js + AngularJS + Socket.io:推送的数据在控制器中不可用

我已经设置了我的节点服务器以随机间隔推出一些数据,并且数据正在到达客户端/浏览器; 然而,我不知道如何在我的应用程序的控制器访问它。 #node.js file: /server.js (truncated for brevity) var http = require('http').createServer(handler),//refers to handler() fs = require('fs'), io = require('socket.io').listen(http); http.listen(8000); … io.sockets.on('connection', function (socket) { /* DUMMY CODE: this generates fake alerts at random intervals */ (function loop() { var rand = Math…; … setTimeout(function(){ … var alert = { … }; socket.emit('alert', { […]