Tag: 表示

req.isAuthenticated()使用NodeJS,Express和PassportJS返回false

req.Authenticated总是返回false,但validationinput错误的用户名和密码显示完美。 这是passportjsauthentication码 passport.js passport.serializeUser(function(user, done){ done(null, user.id); }); passport.deserializeUser(function(id, done){ RegisterList.findById(id, function(err, user){ console.log('deserializing user:', user); done(err, user); }); }); /* Customer Login Config */ passport.use('customer-login', new LocalStrategy({ usernameField : 'username', passwordField : 'password', passReqToCallback : true }, function(req, username, password, done){ process.nextTick(function(){ RegisterList.findOne({'mobile_no' : username}, function(err, user){ if(err) return done(err); if(!user) return done(null, false, […]

简单的MEAN堆栈问题

我有一条快车路线; router.get('/ uni /: queryst ',function(req,res){var choice = req.params.queryst);} 基本上我使用URL的queryst值来使用它来查询我的数据库中的东西。 在前端,我需要一个input字段,用户input选项并点击提交,然后在浏览器上转换为/ uni / valuehere这样的内容,然后发送GET来表示被我上面写的路由器。 我不知道如何使HTML的input字段变成格式/ uni / valuehere的URL。 至于testing代码最初,我直接用我打算validation的值手动inputURL来检查数据是否通过。 那么,用户不会直接键入URL的search,他们将需要一个表单,这是我无法得到我的头如何将input字段变成一个URL格式/ uni / WhateverTheUserHasTypedInTheFieldShouldAppearHere 先谢谢您的帮助。 我自学了MEAN堆栈并走过了一段很长的路。 我需要经验丰富的开发人员的支持,因为我目前就在这里。

从NodeJS发送数据而不重新渲染整个页面?

我已经写了一个非常简单的快速NodeJS应用程序,从窗体中的用户读取数据并发送到服务器。 服务器做了一些操作,并返回一个新的string到同一页面。 但是,为了将新数据返回到当前加载的页面,我必须重新呈现页面。 我想通过从节点js发送它来更新一个string,而不是重新渲染整个页面。 我有以下问题: 如何从NodeJS服务器发送数据而不重新渲染整个页面? 为什么使用Post方法发送数据,在req.body.XXX提供数据,但是使用Get方法发送数据,为req.body.XXX返回undefined 。 <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <p>Welcome to <%= title %></p> <form id="myForm" action = "http://localhost:3000/testing" method="post"> Enter Url: <input type="text" name="urlEditText"/> <br /> <br /> Shortened Url:<%= shortenedUrl %> <br /> <br /> <input id="myButton" type="button" value="Submit" /> […]

使用i18n与hbs和express

我试图用hbs正确使用i18n,但还没有成功。 这是我的server.js代码: var express = require('express'); var server = express(); var hbs = require('hbs'); var i18n = require('i18n'); var cookieParser = require('cookie-parser'); i18n.configure({ locales: ['en', 'fr'], cookie: 'locale', directory: __dirname + "/locales" }); hbs.registerPartials(__dirname + '/views'); server.set('view engine', 'hbs'); server.engine('hbs', hbs.__express); server.use(cookieParser()); server.use(i18n.init); hbs.registerHelper('__', function () { return i18n.__.apply(this, arguments); }); hbs.registerHelper('__n', function () { […]

Node-acl方法“isAllowed”总是意外地返回false

我正在试图用mongodb实现node-acl,并表示允许控制每个文档,例如 用户查看所有文档 用户只能编辑/删除自己的文件。 我采取了这种方法: 当用户注册时,我使用后保存挂钩来创build一个用户并为其分配一个angular色: UserSchema.post('save', function(doc) { var roles = doc.roles || []; if (!roles.length) { roles = ['user']; } acl.addUserRoles(doc._id.toString(), roles, function(err) { console.log(err, 'added user'); }); }); 现在,用户已经在系统中创build,他们现在可以创build一个旅程。 像上面一样,我使用后保存挂钩将给定的权限添加给给定的用户在给定的资源: TripSchema.post('save', function(trip) { acl.allow(trip.user.toString(), '/trips/' + trip._id, '*', function(err) { }); }); 然后,我使用自定义的简单中间件function来检查给定的用户是否有权访问给定的资源: var middleware = function (req, res, next) { acl.isAllowed(req.user._id.toString(), req.path, […]

这是我正在使用的正确结构 – (kue,集群,节点)

嗨,我正在与kue , 群集 , redis ,node.js。 这里是一个非常简单的例子,稍后我会从外面调用testing函数。 我的目的是将一些传入作业添加到队列中并使用工作人员进行处理。 在我的情况下,当一个用户使用我的应用程序完成一个订单,他会收到一封电子邮件。 我会把电子邮件的详细信息发送到队列并使用工作人员进行处理。 var cluster = require('cluster'); var kue = require('kue'); var jobs = kue.createQueue(); var max_workers = 3; function test() { jobs.create('email', { title: 'welcome email for tj' , to: 'tj@learnboost.com' , template: 'welcome-email' }).save( function(err){ if( !err){} console.log( "no error"); }); if( cluster.isMaster ) { for […]

在返回响应之前运行express中间件

我已经看到了这个问题和答案,但是看起来像是一个黑客,在将这样的东西放到生产应用程序之前,我会三思而后行。 有什么办法可以在请求结束时运行一些业务代码,比如清理资源,使用快速中间件,而不用黑客? 目前,我正在使用node的response-finish事件来运行这个逻辑,但是它在响应发送到客户端之后运行,并且偶尔会导致需要处理这些资源的后续请求发生冲突。 我想find一种方法来运行我的逻辑,然后将响应返回给客户端。

router.post返回错误“undefined不是函数”。使用mongo和express.js

我试图buld一个应用程序使用来自LINK的文件。我发现张贴是代码breaks.Hasexpressionjs更改或是语法错误? router.post破一旦到达Maid.registerMaid(新的女仆({…我可以使它使用.save(),但任何人都可以解释为什么这个callback是beaking? 把代码放在下面..对不起,我是一个初学者在平均水平 API.js var express = require('express'), router = express.Router(), passport = require('passport'); User = require('../models/user.js'); Maid = require('../models/maid.js'); router.post('/AddMaid', function(req, res) { console.log(req.body, req.body.FirstName,req.body.LastName); Maid.registerMaid(new Maid({ FirstName: req.body.FirstName }), ({LastName: req.body.LastName}), function(err, account) { if (err) { return res.status(500).json({err : err}) } return res.status(200).json({status: 'Registration successful!'}); }); }); Services.js angular.module('myApp').factory('AuthService',['$q', '$timeout', '$http', function […]

Express&Socket.io – 最佳实践

我现在正在使用Express框架,服务器端的socket.io包和NodeJS以及socket.io-client的socket.io-client进行项目工作。 这是代码示例: var app = require('express')(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); //… server.listen(80); 我想知道,如果使用http server ,作为结合socket.io和Express的结果,可能会导致一些限制,允许连接到服务器的数量。 我的网站应该坚持使用1000个连接立即。 所以,问题是: 在端口上使用http server监听连接数量是否比appvariables更多? 什么是一次socket.io连接的最大数量? 有没有什么已知的问题呢? http server的agentPool是否限制连接数量? http server的_maxListeners是否限制连接数量? 我应该使用app.listen(80)还是server.listen(80) ? 为什么? 此外,如果您在使用socket.io,Express和node.js时有任何build议/最佳实践或已知问题,我将很乐意学习:-) 非常感谢!

没有足够的权限来访问nodejs中的资源

访问资源的权限不足 尝试将访问控制列表集成到我的项目中,这里将用户标识(12345)分配给访客angular色。 而我访问的url,我得到以下错误 HttpError:没有足够权限访问/ home / smi-user / chrysmo / node_modules / acl / lib / acl.js:649:14在tryCatcher(/ home / smi-user / chrysmo / node_modules / bluebird / js / main / (Promise.successAdapter [as_fulfillmentHandler0](/home/smi-user/chrysmo/node_modules/bluebird/js/main/nodeify.js:23:30)at Promise._settlePromiseAt(/ home / util.js:26:23) smith-user / chrysmo / node_modules / bluebird / js / main / promise.js:579:21)at Promise._settlePromises(/home/smi-user/chrysmo/node_modules/bluebird/js/main/promise.js:697: 14)在Async._drainQueues(/ home / smi-user […]