Tag: 表示

从哪里开始为Node.js编写Postgres数据访问层?

我正在用Node编写一个Express应用程序,并且想抽象一些我的代码,特别是数据访问的东西。 我想避免只安装一个ORMS,因为我build议不要使用ORM,而应该使用node-postgres本身。 我正在寻找例子,因为我是新来的Javascript。 我会猜想包装在一个对象的东西? 以下是“展示”客户快递资源的一个示例。 exports.show = function(req, res, next) { pg.connect(conString, function(err, client) { client.query('select * from customer where id = ' + req.params.customer, function(err, results) { if (err) { throw next(err.message); } var customer = results.rows[0]; client.query('select * from history where customer_id = ' + req.params.customer + ' order by updated_at desc', function(err, […]

我如何使用everyauth进行简单(单步)身份validation?

我如何使用everyauth执行一个非常简单的oauthauthentication与node.js如果我有公共密钥和密钥? 不像一个多步的facebooktypesauthentication,我只是想使用everyauth进行简单的authenticationREST调用。 并且everyauth是工作的正确工具?

使用Socket.io的简单Node.js应用程序无法加载客户端JavaScript

这太令人沮丧了,试图得到一个简单的node.js + socket.io应用程序,但客户端无法加载JavaScript库。 GET http://localhost:4000/socket.io/socket.io.js 404 (Not Found) 这里是node.js应用程序: var app = require('express').createServer(); var io = require('socket.io').listen(app); io.set('log level', 1); app.listen(4000); app.get('/', function(req, res) { res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function(socket) { console.log("got a connection"); }); 任何想法可能会发生什么?

构buildNode.js模块化Web应用程序

我如何使用Node.js构build模块化Web应用程序? 我应该使用哪些模块来编写它? 我使用快递MVC这是否被认为是模块化系统?

为everyauthconfigurationfindByUserId – 节点,express,mongoose,everyauth

我对Node.js和Express比较陌生。 我试图用Twitter完成everyauth的configuration,我试图访问服务器端的“res.user”,根据everyauth的文档要求.findByUserIdconfiguration。 那是我遇到麻烦的地方 你如何configurationfindByUserId? 这是我得到的。 它目前正在创build一个新的用户或login他们,我没有正确设置.findByUserId,但让我访问我需要在服务器端的req.user。 如果您对如何优化此代码有其他build议,请让我知道,因为我只是在学习。 下面编辑的代码… App.js var express = require('express') , everyauth = require('everyauth') , util = require('util') , Promise = everyauth.Promise , users = require('./lib/users') , config = require('./config.js') , twitter = require('./lib/twitter') , games = require('./lib/games') everyauth.twitter .consumerKey(config.twitter.consumerKey) .consumerSecret(config.twitter.consumerSecret) .findOrCreateUser( function (session, accessToken, accessTokenSecret, twitterUserMetadata) { var promise = this.Promise(); […]

expressjs从子域中删除Cookie

我通过子域提供我应用上的所有静态内容。 不过,我的快车应用程序仍然在静态内容上设置会话cookie。 我尝试按照文档设置path: app.use(express.session({ secret: 'your app secret', cookie: { domain : '.yourdomain.com' }, store: new MongoStore({ db: 'db', host: 'localhost', port:config.dbPort }) })); 但它仍然不适合我。 我也尝试使用“path”: cookie: { path : '.yourdomain.com' } 但即使这样也不能阻止在静态内容上设置Cookie。 有关如何从所有静态内容中删除cookie的任何想法? 更新: Request Headers Accept:text/css,*/*;q=0.1 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Connection:keep-alive Host:cdn.yourdomain.com Referer:http://localhost:8888/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) […]

Node.js,cluster,express,apache ab和mongodb

我是mongo的新手,并且使用Node.js(v0.4.12),cluster(Learnboost v0.7.7)和express(v2.5.9)设置了一些性能testing。 我正在尝试连接到mongo,并使用apache ab进行简单的性能testing。 我已经用MySql设置了它,它完美的工作,但是当我尝试用mongo做同样的testing时,我没有得到我期望的结果。 通过MySql,我发送了10,000个请求到node.js集群(8个核心),并且我得到了10,000行插入到数据库。 没有问题。 但是,当我用mongo做同样的事时,我只能得到4500-4900。 我试过mongoskin,mongo-lite,node-mongodb-native,都有完全相同的结果。 我想也许这是池的大小,所以我增加/减less了。 没有。 没有错误或例外。 我不知所措 任何帮助,将不胜感激。 谢谢。 testing代码如下: app.js var mongoLite = require('mongo-lite'); var express = require('express'); var count = 1; var config = { host : 'localhost', user : USER, pass : PASSWORD, port : '27017', db : 'test', options : 'poolSize=10' }; var configUrl = […]

使用mustache.js部分快递

所以这可能是我完全误解function的一个例子,但是我正在尝试在node.js中使用partials,以便在类似于{% extends 'something.html' %}各种模板上有一个可重复使用的可重新插入的页眉和页脚。在Django或<? includes 'something.php ?> 在php中<? includes 'something.php ?> 。 据我所知,这是部分是为了什么。 所以在我的app.js使用这个configuration来呈现模板: var mustache = require('mustache'); var template = { compile: function (source, options) { if (typeof source == 'string') { return function(options) { options.locals = options.locals || {}; options.partials = options.partials || {}; if (options.body) // for express.js > v1.0 locals.body = […]

为什么我的Node应用程序在这个POST请求上返回404?

我很确定,我在我的应用程序的某个地方犯了一些愚蠢的错误,但我似乎无法find它。 所以这里是我的快速应用程序的样子。 我有我的路线设置如下: var routes = require('./routes'); … app.get('/', routes.index); app.get('/embed', routes.embed); app.post('/upload', routes.upload); 在我的路线文件夹中,我有两个文件。 index.js文件导出两个请求处理程序.index和.embed 。 知道.embed会创build一个在/embed页面上使用的CSRF令牌: exports.embed = function(req, res){ var csrf = req.session._csrf; res.render('embed', { token: csrf }); }; form#secret-form(name="secret-form", method="post", action="/upload", style="") input(type="hidden", name="_csrf", value="#{token}") input(type="hidden", name="image") input#send-button(type="submit") Upload 只是一个简短的说明,如果它造成的问题:我没有附加一个.submit jQuery处理程序到这种forms; 它只是从该页面上的canvas对象抓取数据URL,并将其作为名称为“image”的input字段的值。 .upload路由在routes / upload.js文件中处理。 它看起来像这样: exports.upload = function(req, res) { […]

Node.js / Express – 通过请求/响应对象修改响应模板上下文

我正在使用Express来为node.js应用程序中的网页提供服务。 假设我希望在响应对象的render方法呈现的所有视图中都有一个variablesfoo 。 我知道我可以为这个任务定义dynamic助手。 然而,当你需要像这样asynchronous设置助手variables(Mongoose示例)时,我发现它们不合适: Thing.count(filter, function(error, thingCount) { foo = thingCount; } 我试过使用连接中间件的方法,这完全适合我,但是这里的问题是如何影响响​​应上下文。 通过查看express/lib/view.js render方法定义,我发现它可以通过写入app._locals对象来操作: function putFooIntoContext (req, res, next) { Thing.count(filter, function(error, thingCount) { res.app._locals.foo = thingCount; next(); } } 它按预期工作,但是,我有点害怕这种简单的方法不是最好的解决scheme。 有人可以给我任何想法如何影响响​​应上下文通过与Express开发人员正确devise的请求/响应对象进行交互?