Tag: 表示

使用mongoDB中的id数组获取对象

使用node.js / express和mongoDB构build一个API。 我有两个集合,像一个多对多的关系,用户和项目。 我想获得用户所关注的所有项目。 用户Items是一个带有指向Items的id的数组。 我如何查询,所以我得到所有的项目多数民众赞成在useritems数组? 类别: 用户: { email: "johnny@hotmail.com", username: "johnny", useritems: ["51e101df2914931e7f000003", "51cd42ba9007d30000000001"] } 项目: { "name": "myitem", "description": "Description of item" "_id": "51e101df2914931e7f000003" } { "name": "myitem2", "description": "Description of item2" "_id": "51cd42ba9007d30000000001" } { "name": "myitem3", "description": "Description of item3" "_id": "51e101df2914931e7f000005" } 编辑: 我更新了代码。 我现在得到基于用户ID的useritems ID数组。 问题是当我尝试将项目发送到数组。 项目总是空的。 […]

用node + express中的新数据更新句柄模板

我已经设法让我的句柄工作在一个节点+快递的应用程序,并根据哈希标签,我没有检索到任何问题,并在第一次在页面上的鸣叫呈现第一时间没有问题的加载数据。 我现在的问题是试图用新的推文来更新模板。 我有我的路线下面的代码: new twitter.TwitterStream().getHashTagStream(tweetsRetrieved); function tweetsRetrieved(tweets) { twitterSearchResults = tweets; } module.exports = function(app) { app.get('/', function (req, res){ res.render('index', twitterSearchResults); }); }; 我已经尝试了渲染和getTweets方法周围的setIntervals和控制台日志logging,我确实看到我的Twitter的最新鸣叫的响应,但模板没有更新。 任何帮助将不胜感激。 谢谢 汤姆

nodejs集群socket.io表示应用程序

var httpsport = 8080, // used for httpsapp httpport = 8000, // used for httpapp numCPUs = require('os').cpus().length; var credentials = { key: fs.readFileSync('./cert/client.key'), cert: fs.readFileSync('./cert/client.crt'), requestCert: true }; var cluster = require('cluster'), socketStore = require('socket.io-clusterhub'); var redis = require('redis'); var redisClient = redis.createClient(); if(cluster.isMaster) { for(var i=0; i<numCPUs; i++) { cluster.fork(); } } else […]

Node.js应用程序:在页面加载时出现白色闪烁

我有一个非常简单的Node.js(快速)应用程序。 页面非常简单,如此花哨的html,没有iframes。 我用玉来渲染它们。 然而,当从一个页面导航到另一个页面,或者只是重新加载页面时,在显示实际页面之前,会出现一个白色的屏幕/闪存。 一个类似的问题表明,这种行为是正常的,这是很难相信的,因为我的其他网站都没有这样的行为,也没有太多重的页面。 例如:facebook,youtube,google,wikipedia …在页面之间浏览时没有华丽的过渡。 我的网站很轻: 页面加载时间:99ms 页面大小:34.4kB http://tools.pingdom.com/fpt/#!/bjTSbm/http://165.225.137.117 详细信息 :我有我的应用程序在本地运行以及vps。 对于本地版本:以下浏览器会出现白色闪烁: Chrome(MAC)28.0.1500.71 但不是: Firefox(MAC)16.0.1 Safari(MAC)6.0 对于vps版本:白色闪光出现在以下浏览器: Chrome(MAC)28.0.1500.71 Safari(MAC)6.0 但不是: Firefox(MAC)16.0.1 这个白色闪光灯的原因是什么?我该如何解决这个问题? 非常感谢!

即使在添加“unsafe-eval”之后,调用函数()以阻止CSP

我正在研究一个NodeJS项目,我正在使用CSP ( 内容安全策略 )。 我正在使用一个外部插件FullCalendar被csp阻止给出以下错误: Error: call to Function() blocked by CSP 我使用script-src 'self' 'unsafe-eval'; 重写它,但没有在Firefox中工作。 在其他浏览器,它工作正常。 我被这个问题困住了4个小时。 得到解决scheme将是有帮助的。 我在CSP限制中使用以下格式。 X-Content-Security-Policy:default-src *; script-src'self''unsafe-eval'; object-src'none'; style-src'self''unsafe-inline img-src *; options eval-script; X-WebKit-CSP:default-src *; script-src'self''unsafe-eval'; object-src'none'; style-src'self''unsafe-inline img-src *; 内容安全策略:default-src *; script-src'self''unsafe-eval'; object-src'none'; style-src'self''unsafe-inline img-src *;

mongoosevalidation虚拟

我有以下模型使用mongoose: var Usuarios = function (){ var crypt = require('./crypt_helper'), _model, _findByEmail, _findById, _findByRememberToken, _schema, validadores = {} validadores.notBlank = function(val){ return !(/^\s*$/.test(val)); } validadores.email = function(val){ return /^[\w+\-.]+@[az\d\-.]+\.[az]+$/i.test(val); } validadores.unique = function(field, message){ _schema.path(field).validate(function(val, fn){ var query = {} query[field] = val; _model.find(query).exec(function (err, vals) { fn(err || vals.length === 0); }); }, message); […]

为什么Node-sass不能将我的scss编译到Node / Express.js中的css中

我对Node.js和Express.js非常陌生。 我希望能够使用SCSS而不是Stylus。 我已经安装了node-sass到我的node-modules,并将其包含在我的package.json文件中。 然后我将下面的代码添加到我的app.js文件中: var sass = require('node-sass'); app.use(sass.middleware({ src: __dirname + '/public', dest: __dirname + '/public', debug: true })); 问题是没有什么是编译。 我在命令行中遇到500错误。 见下文 GET / 304 135ms source : /Users/chrisdacie/Sites/express_example/public/stylesheets/base.scss dest : /Users/chrisdacie/Sites/express_example/public/stylesheets/base.css read : /Users/chrisdacie/Sites/express_example/public/stylesheets/base.css … GET /stylesheets/style.css 304 4ms undefined GET /stylesheets/base.css 500 33ms 任何帮助将不胜感激。 我真的不想使用手写笔。

无法获得护照/快递与LocalStrategy一起使用。 得到401

我以为我跟着文件,但我得到了一个401响应。 我有一个简单的POST表单,收到401响应。 这是我的示例代码(CASE 1): passport.serializeUser(function(user, done) { console.log("Serializing:", user); done(null, JSON.parse(user)); }); passport.deserializeUser(function(obj, done) { console.log("Deserializing:" + obj); done(null, obj); }); passport.use(new LocalStrategy( function(username, password, done) { console.log("Authenticating…..:" + username); User.findOne({ username: username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } […]

在使用PassportJS时将用户序列化/反序列化到会话中的目的?

在使用PassportJS时序列化/反序列化用户到会话中的目的是什么? 我之前和JSP一起工作,似乎没有这些东西的概念。

如何修改(或只读)请求stream之前,它是pipe道?

我有以下代码: app.post('/someurl',function(req,res,next){ var request = require('request').post('/otherurl'); var response = ''; request.on('data',function(chunk){ response += chunk; }); var pipe = req.pipe(parser).pipe(request); request.on('end',function(){ var res2 = pipe.response; var obj = JSON.parse(response); res.json(obj); }); }); 所以它只是pipe理POST请求到其他url。 我需要的是知道pipe道请求的身体。 所以我添加了这个(这个代码不应该做什么): var Transform = require('stream').Transform; var parser = new Transform(); parser._transform = function(data, encoding, done) { this.push(data); done(); }; 并将req.pipe(request)更改为req.pipe(parser).pipe(request) 。 问题是,这是行不通的 […]