Articles of 表示

mongoosefindOne不工作如何我想要它

我正在制作一个应用程序,用户logging他们睡觉的小时数,他们的饮食习惯等,这些信息被存储在一个名为Journal的集合中。 当用户点击“统计信息”时,它会触发一个名为find()的函数,它查找用户提交的所有日志条目,并进行控制台日志logging。 这是我迄今为止: exports.stats = function(req, res) { function find() { Journal.findOne({'user': req.params.id}, 'sleep', function(err, journal){ if(err) throw err; console.log(journal.sleep); }); } find(); } 在这个例子中,我正在试图控制一个特定用户的睡眠小时数,但是它只显示该会话的睡眠小时数,而不是所有睡眠小时数

实现上传到单独的文件服务器的最佳方法?

所以我们有一个由node.js,express和mongodb组成的网页。 我在DMZ有2个服务器,没有join到AD中。 其中一台服务器将在网页上提供服务,另一台服务器将纯粹接收并提供video文件。 服务器正在运行iis和iisnode。 目前该页面正在使用MULTER上传文件,这对于上传到运行代码的相同服务器来说工作良好。 上传到单独的服务器被certificate是困难的,而我的谷歌search没有让我更接近解决scheme。 我希望上传和下载直接在客户端和video服务器之间,而不是通过networking服务器。 任何提示如何处理这个?

NodeJs:使用Express比较URL参数和删除请求与数组值

所以,我有这些快递路线的对象数组,并做了一些CRUD操作,但我卡在“删除”之一。 我想通过抓取它的url参数ID来删除一个对象,并检查它是否与它的键的值匹配。 一切似乎工作,除了两件事情: “文本”键可以是任何东西(不关心,如果它不在数组中)。 只要匹配现有的url,它就不需要匹配它自己的“文本”。 我知道我错过了一些参数,但经过一段时间的search,尝试了几个不同的东西,我似乎无法把它放在手指上。 我是编程新手,可能说得不好,但请耐心等待。 app.js var foodList = [ { id:'e3ed4we23', text:'honey' }, { id:'12312oi3i2', text:'milk' }, { id:'1023u2kodw', text:'chicken' }, { id:'213021381203', text:'eggs' } ]; app.delete('/food-list/delete/:ingredientId', function(req, res) { var removeIngredient = req.body.text; if(!removeIngredient || removeIngredient.length == 0) { console.log('Cannot remove this ingredient:', removeIngredient); res.status(500).send({error:'Cannot remove invalid ingredient text'}); }else { […]

如何使查询结果可以从所有页面访问

我试图能够通过一个variables传递给我的模板,我可以让它为单个页面工作,但我需要find一种方法来访问它的任何页面的结果。 原因是它是需要我的侧边栏是一个模板的一部分。 我的模板是 include header include sidebar content include footer 这只是sudo代码,显然不是我的实际代码。 我需要包括的查询是: Item.count({"author.id":req.user.id}, (err, itemCount)=>{ if(err){ console.log(err); } else { var Count = JSON.stringify(itemCount); // somehow I need to store Count to be accessible inside my sidebar } }); 我知道我可以把每个路由查询,但有没有办法,我可以做只有login的用户,并把它放在中间件或东西或sorting? 我现在把它存储在每个路由中,但我知道这不是DRY代码,更新它将是一个巨大的痛苦,因为我有超过50个我处理的路线。 我典型的路线是: // dashboard app.get('/dashboard', setRender('dashboard/index'), setRedirect({auth: '/login'}), isAuthenticated, (req, res, next) => { }, […]

节点JS:在res.render()之后的res.download()出错

我开始与节点JS,我得到一个错误: 错误:发送后无法设置标题。 你可以看到我的代码,问题是用res.download() ; 或者,如何在没有res.render()情况下显示视图? 你能告诉我如何解决这个问题? 谢谢! var express = require('express'); var app = express(); var pythonShell = require('python-shell'); app.set('view engine', 'ejs'); app.use(express.static('style')); app.post('/downloads', function(req, res) { res.render('downloads.ejs'); console.log("Python script begins"); pythonShell.run('./generator.py', function (err) { if (err) throw err; console.log("Python Script Ended"); res.download('mapCreated.tiff', 'map.tiff'); }); })

在快速应用程序之间共享会话(connect-mongodb)

所以我的最终目标是让多个节点应用程序连接到同一个数据库并在用户之间共享会话。 所以,如果你从一个应用程序注销,它会将你从所有的应用程序中注销,login也一样。所以这是在我的开发环境中工作。 我有两个节点快速应用程序连接到同一个Mongo会话数据库,所以我可以login到一个应用程序,另一个自动识别会话并login。我已经推送到我们的活CentOS服务器,并使用PM2和Nginx为它服务。 它目前正在为每个应用程序创build一个新的会话条目。 这两个应用程序使用相同的数据库会话和用户。 我可以在实时会话数据库中看到每个应用程序都有一个单独的会话。 因此,我必须立即login到每个应用程序,而不是一个。 这与Nginx有关,因为这在本地是有效的。 注意:我正在使用connect-mongodb会话 这是我的每个快速应用程序中的main.js文件(除端口#外都相同): var MongoDBStore = require('connect-mongodb-session')(express.session); var configDB = require('./config/database.js'); var env = require('./config/env.js'); if(env.location == 'test'){ var store = new MongoDBStore({ uri: configDB.sessions_url, collection: 'sess' }); }else if(env.location == 'live'){ var store = new MongoDBStore({ uri: configDB.sessions_url_live, collection: 'sess' }); } // Catch errors store.on('error', function(error) […]

如何在使用feathersjs响应NodeJs之前发送令牌jwt来validation?

我正在使用令牌jwt做pipe理仪表板。 我想用户只有login才能获得对中间件的访问权限。 我想这样做,如果他login,服务器显示主页,如果没有,然后他redirect到login页面。 下面是我的中间件index.js const auth = require('feathers-authentication'); const pupils = require('./pupils'); const login = require('./login'); const home = require('./home'); module.exports = function () { // Add your custom middleware here. Remember, that // in Express the order matters const app = this; // eslint-disable-line no-unused-vars app.use('/pupils.html', pupils()); app.use('/login.html', login()); app.use('/', home()); app.post('/login', auth.express.authenticate('local', { […]

NodeJS上的SSL证书,并表示不工作

我有一个运行快速的NodeJs应用程序。 我一直在试图集成一个SSL证书,但我一直有相同的错误: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line 。 我已经尝试了一些解决scheme,我发现stackoverflow像 var privateKey = fs.readFileSync( 'privatekey.pem' ); var certificate = fs.readFileSync( 'certificate.pem' ); https.createServer({ key: privateKey, cert: certificate }, app).listen(port); 要么 var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = fs.readFileSync('privatekey.pem'); var certificate = fs.readFileSync('certificate.pem'); var httpServer = http.createServer(app); var httpsServer […]

在NodeJS中的函数之间传递variables

我正在关注这个( YouTube链接 )节点教程,因为我必须为朋友构build一个Web应用程序。 他需要使用Dynamo DB和节点j,我正在学习,而我build立这个应用程序,我做得很好,但现在我卡住了。 我正在尝试获取JWT令牌(如video中提到的),但没有任何反应。 这是我的路线: router.post('/authenticate', (req, res, next) => { const username = req.body.username; const password = req.body.password; USER.getUserByUsername(username, (err, user) => { if (err) throw err; if (!user) { return res.json({ success: false, "msg": "User not found" }); } User.comparePassword(password, user.password, (err, isMatch) => { if (err) throw err; if (isMatch) […]

使用Passport在Express中传递参数

我使用Express和Passport做了一个小型的login应用程序。 但似乎我不能指导用户进入一个特定的用户configuration文件。 用户需要填写一个HTML表单,他必须redirect到他自己的configuration文件页面(为了简单起见,可以说这个页面与其他用户页面只有标题不同)。 我有这在我的用户路线。 (即routes / users.js) router.get('/userprofile', authenticationMiddleware(), function (req, res, next) { res.render('userprofile'); }); router.post('/login', passport.authenticate('local-login', { successRedirect: '/users/userprofile', failureRedirect: '/users/login', failureFlash: true })); 在我的passport.jsconfiguration文件中,我有这个。 passport.use('local-login', new LocalStrategy({ usernameField: 'username', passwordField: 'password', passReqToCallback: true }, function (req, username, password, done) { db.pool.getConnection(function (err, connection) { if(err) throw err; var query = connection.query('SELECT * […]