Tag: 表示

哪个node.js CRUD网站的MVC框架

我一直在使用sails作为我的最后一个node.js应用程序的框架,它极大的帮助了轮询; 然而,我现在开始一个基本的CRUD网站,主要是从客户端到服务器的AJAX推送请求,并从服务器只拉大单块。 这些拉动将会是中等CPU密集型的:数据库处理然后是许多元组的模板构build,所以我想我会在某种types的线程池中运行它们(还没有研究如何在node.js中完成此操作)。 由于sails默认将socket.io包含到了它的请求中,所以我怀疑它不适合我的CRUD /非实时站点,对吗? 那么,有没有什么好的MVC框架用于我的用例,或者express +我自己的MVC结构是我最好的select?

PassportJS不通过身份validation

我究竟做错了什么? 它总是redirect到失败页面,但我无法debugging。 // passport var passport = require('passport'), LocalStrategy = require('passport-local').Strategy, User = require('./models/user.js').Model; passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'password' }, function(username, password, done) { User.findOne({ username: username }, function(err, user) { console.log('entrou'); if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } if (!user.validPassword(password)) { return […]

JavaScript:DOM相关代码的最佳实践是否同时执行服务器和客户端?

背景 从2年前开始(使用Batman.js和node.js )我开始尝试在服务器和客户端上执行相同的DOM代码。 这是希望有SPA(单页面应用程序),可以使用pushState呈现,并在页面已经呈现为search引擎优化和卓越的用户体验路线访问(没有页面“闪光灯”与页面后的SPA渲染元素相关联负荷)。 这通常涉及将模块封装在if语句中,该语句检查模块是在window中执行还是被require.js使用,或者作为node.js等中的模块。 客户端+服务器SPA的当前实现 Rendr和Ezel都试图帮助客户端+服务器代码共享和DOM渲染function到骨干SPA。 Ezel在Backbone模型/集合中具有魔力,但是在客户端使用Backbone.View + Jade时 ,视图在服务器上使用Express + Jade呈现。 这意味着在扩展的Backbone.View中使用像Rivets这样的东西不会导致HTML打到由Rivets预渲染的客户端。 我希望构build一些最佳实践和技巧,使我自己的DOM服务器端保持简单(在一个位置编辑视图代码)和灵活(能够添加Ezel目前不支持的其他DOM操作模块)。 期望的结果 我想使用类似Rivets的东西来注入模型数据到视图中,然后通过一个HTTP请求为一个完整的页面加载path,并且通过一个HTTP请求来响应变化pushState在客户端上。 什么是节点的环境要求,我可以使用Rivets修改服务器上的HTML之前,它的服务和保持绑定在客户端上? 如何最好地将jQuery , Backbone , Rivets等引入到node.js中 ,让它们在HTML模板的DOM上运行,然后提供预渲染的结果(同时在客户端上保持正常的JS行为)? 相关模块 Sharify和Browserify都是可以帮助共享代码的工具。 Rivets , Backbone & jQuery都有与node.js兼容的发行版。 目前的工作 我已经开始通过Github上的分支向Ezel添加function。

新来expression,我从哪里开始?

我正在学习node / express。 我已经购买了几本书,并遵循一些在线指南,我想开始修补,但我不知道在哪里添加逻辑到我的路线。 我使用express命令行工具创build了一个基本的应用程序。 我现在有两个路线在我的app.js中定义 app.get('/', routes.index); app.get('/users', user.list); 我看到了玉的模板,我认为我完全有能力通过玉/手写笔提供普通的旧HTML。 但是我想添加逻辑,我不知道该怎么做。 它是否像php一样工作,因为我将这些逻辑添加到jade html文件,或者我把它放在app.js中。 我在一个例子中看到了如何在jade中引用一个variables,但是我想在页面显示时运行代码(服务器端,如php)。 我参考了很多PHP,因为这是我熟悉的唯一语言。

不处理“Access-Control-Allow-Origin” – 客户端问题

这个问题对许多新手来说可能不是一个新问题。 我是其中之一,我必须在客户端处理这个问题。 所以,请不要将此问题标记为重复。 我有我的网站客户端代码部署在服务器,这个网站调用部署在其他一些不同的服务器的web服务。 (请注意:我没有这个webservice代码访问)。 我的AJAX代码来检索数据: $.ajax({ type: 'GET', url: 'http://webservice_url', success: function (data) { //success }, failure: function(error){ //error } }); 在通过AJAX访问此Web服务时,我收到: XMLHttpRequest cannot load http://webservice_url. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 浏览器控制台日志 我可以在浏览器控制台(在我的web服务的“networking”选项卡 – >“响应”选项卡下)成功查看我的web服务的响应。 但是,检索上述错误。 在回顾许多以前的post,我发现通过设置响应标题为: response.addHeader("Access-Control-Allow-Origin", "*"); 将解决这个问题。 但是, 我没有访问权限来改变我的web服务代码,添加响应头 。 […]

Jade + Express:我的客户端Javascript在哪里?

我在哪里把我的客户端JavaScript? 我试图把它包括在我的玉模板中,像这样: script(type="type/javascript",src="../typeahead.js") 它返回这个Cannot GET /typeahead.js 我也试过require('../typeahead.js') ,这并不令人惊讶,没有工作。 只是为了澄清,因为我是新的Node.js , require是为服务器端代码正确?

passport.js难以获得散列密码

我在我的应用程序中使用Passport.js。 我正在使用这种盐: 7PJnpX5okg9ET2pZ2m5eyg== 对于这个哈希密码是: ZKRdKDloN37k9Bt070YMZkrqZw+e5IsFx/mdir3+QAEk1dDSp8+q1YJ57GvAQKU5dWIit55eNgWEcI4hd1N7vw== 现在,当用户login时,我使用这个代码: var userPass = 'testtest' var salt = "7PJnpX5okg9ET2pZ2m5eyg=="; var hashedPassword1 = crypto.pbkdf2Sync(userPass, salt, 10000, 64).toString('base64'); hashedPassword1是不同的: Gav+sH1tUG4xlBZOupBy+hcPMGbg5LexzONJuthJxnsY9/WvX17i2d9n6L292bXVsndHbcJfC2KeY3SL IRBjEw ==

NodeJS ReferenceError:io未定义

我开始在节点JS和面临一个问题与io lib,这里的错误: ReferenceError: io is not defined at exports.index (D:\dev\lib\index.js:9:5) at callbacks (D:\dev\node_modules\express\lib\router\index.js:164:37) at param (D:\dev\node_modules\express\lib\router\index.js:138:11) at pass (D:\dev\node_modules\express\lib\router\index.js:145:5) at Router._dispatch (D:\dev\node_modules\express\lib\router\index.js:1 73:5) at Object.router (D:\dev\node_modules\express\lib\router\index.js:33:1 0) at next (D:\dev\node_modules\express\node_modules\connect\lib\proto.js:190:15) at Object.methodOverride [as handle] (D:\dev\node_modules\express\node_modules\connect\lib\middleware\methodOverride.js:49:5) at next (D:\dev\node_modules\express\node_modules\connect\lib\proto.js:190:15) at Object.urlencoded [as handle] (D:\dev\node_modules\express\node_modules\connect\lib\middleware\urlencoded.js:51:37) 这里是我的app.js文件的内容: var express = require('express'); var path = require('path'); var app = […]

Primus with Express

我想用Express来使用Primus 。 Primus作为websockets的抽象层。 我用Primus的例子很好 – 我用了一个基本的Express例子 – 工作正常。 但不知何故,我可以让他们一起工作。 index.html(只是标准的primus示例html)&primus.js在文件夹./public中 这是我正在做的事情。 var express = require('express'); var Primus = require('primus'); var http = require('http'); var path = require('path'); var app = express(); var server = require('http').createServer(app) , primus = new Primus(server, { transformer: 'engine.io' }); app.set('port', process.env.PORT || 3000); app.use(express.logger('dev')); app.use(express.json()); // to support JSON-encoded bodies […]

只从Express静态目录服务.js文件?

我正在查找是否有可能从Express.js静态目录中只提供一种types的文件(通过扩展名筛选)。 例如,假设我有以下静态目录: Static FileOne.js FileTwo.less FileThree.html FileFour.js 并说,我只想使任何给定的请求只有扩展名为.js文件,所有其他请求将得到一个500响应(或类似的东西)。 我将如何去实现这一目标? Express是否具有我无法find的烘焙filter,还是我需要使用正则expression式?