Tag: express

如何在单个快递服务器文件中使用两个单独的护照实例

我有一个快速的应用程序与用户和pipe理部分。 两者都将运行在不同的端口上,需要不同的authentication。 我创build了一个app.js,其中包括护照,并创build一个应用程序以及adminApp。 然后我为两者初始化护照如下: var passport = require('passport'); var app = express(); var adminapp = express(); adminapp.use(passport.initialize()); adminapp.use(passport.session()); app.use(passport.initialize()); app.use(passport.session()); 现在我有定义的路由来侦听/ auth和处理身份validation。 由于我在不同的端口上运行这些端口,因此我有相同的路由模式,并且都在端口上正确监听。 所以可以说我有一个userSessions.js和adminSessions.js文件来处理authentication路线。 这些包括如下: var userSessions = require('./routes/userSessions'); var adminSessions = require('./routes/adminSessions'); app.use('/auth', userSessions); adminapp.use('/auth', adminSessions); 现在,如果我尝试在pipe理应用程序上进行身份validation,它仍会转到userSessions.js的passport.serializeUser和passport.deSerializeUser方法。 我如何处理这种情况,以便pipe理员和用户身份validation分开处理? 或者我这样做是错误的方式和pipe理部分应该在完全不同的应用程序处理?

在本地MongoDB点mongoos.connect

我正在使用本教程研究MEAN堆栈。 但教程连接到远程MongoDB安装。 我有MongoDB在CentOS7本地主机上运行。 如何从上面的教程链接中更改server.js中的mongoose连接线以连接到本地主机数据库而不是远程数据库? 这里是server.js的当前行,需要修改为指向localhost mongodb: mongoose.connect('mongodb://node:nodeuser@mongo.onmodulus.net:27017/uwO3mypu'); 尚未创build特定的mongodb数据库。 我是否也需要创build它?

Node.js res.send VS res.end VS返回res.end

我有以下代码在mongodb findAndUpdateOne更新查询中有一个语法错误。 router.post('/buylicense', isLoggedIn, function(req, res) { if (!req.body.cid) { return res.send('failed'); } Company.findOne({ ownedBy: req.user.local.username, _id: req.body.cid }, function(err, result) { if (err) { return res.send('failed'); } if (result.license) { return res.send('valid'); } else { Company.findOneAndUpdate({ ownedBy: req.user.local.username, _id: req.body.cid }, { license: true, licenseExpireDate: { $add: ["$date", 3 * 24 * 60 * […]

即使用户重新加载页面,如何保持function运行

我的一个页面上有一个控制器,可以在首次访问API的同时获取一些数据。 我想保持function运行,即使用户在那个时候重新加载页面。 如果用户重新加载或导航或closures浏览器甚至注销我想继续运行这个function,直到我完成从API的数据收集。 我怎样才能用AngularJS&Express JS后端实现这种结构。 顺便说一句,第一次访问后,我会检查数据库,如果用户初始化或不,不要再次调用initialize()函数,我只会从数据库获取数据和服务用户。

REST API端点命名

让我们考虑一下,我有这个模型Car : { id: id, name: name, color: color } 而关于我有这些终点,通过ID获得一辆车: GET http://example.com/api/cars/:id 和 GET http://example.com/api/cars (get all cars ) 例如,命名只能获取红色汽车的terminal的最佳做法是什么?

当express.static(__ dirname)函数在node.js中使用express时,redirect到错误的html页面

我有一个名为login.html的login页面和一个名为index.html的索引页面。 我想进行身份validation,只有一个连接的用户可以访问索引页面。 我没有在loginHTML页面上实现post方法。 我必须通过以下url手动发送login用户名和密码: http://localhost:2222/?username=a&password=b 一切正常,但我看不到我的CSS,JS和其他一些在index.html文件。 为了解决这个问题,我在代码的开头添加了这个: app.use(express.static(__dirname)); 现在的问题是,如果我去localhost:2222它显示index.html文件,而不是login.html文件。 即使我使用: app.get('/', function (req, res) { res.redirect('/login'); }); 它是怎么来的? 我该如何解决这个问题? 完整的代码是: var express = require("express"); var port = process.env.PORT || 2222; var app = express(); app.use(express.static(__dirname)); var session = require('express-session') app.use(session({ secret: 'keyboardcat', resave: true, saveUninitialized: true })); function checkAuth(req, res, next) { if (!req.session.user_id) { […]

尝试将新数据传递给一个对象,而不使用expressreplacemongoDB中的旧数据

我正在尝试将新数据传递给对象,而不使用nodejsreplace旧数据。 下面是我的Mongodb数据库(添加新数据之前)的结构 { "_id" : ObjectId("58fd05f7fb69f42d54fccd12"), "Transaction" : { "QRIDNumber6666" : { "retailer" : "watson", "discount" : "10%", "tax" : "5%", "Transaction Detail" : [ { "quantity" : "1", "pname" : "coca", "price" : "3" }, { "quantity" : "3", "pname" : "pepsi", "price" : "5" } ] } } } 我想要实现的是添加另一个QRIDNumber在交易,例如:QRIDNumber 7777,具有不同的值,但相同的结构相比,QRIDNumber6666 我目前的尝试是通过在nodejs上使用以下代码 app.put('/contactlist/', […]

Express包仍然“需要” – npm后卸载?

npm uninstall express成功卸载,而且当我ls $NODE_PATH ,它不在了。 但是,如果我运行node并require('express') ,我得到 { version: '1.0.0rc2', Server: { [Function: Server] super_: { [Function: Server] super_: [Object] } }, createServer: [Function] } 为什么这仍然发生? 我玩Express的原因是(显然)它打破了某个版本的连接。 有谁知道快递和连接的成功组合将工作? 谢谢!

是否有可能使用Nodejs和Socket.io更新页面的单个部分?

我正在尝试创build一个基本的Node应用程序,每当客户端连接时,我想更新页面上显示的计数器。 (我的目标是创build这个应用程序的最简单,可学习的forms来演示节点给我的讲师)。 服务器端应用程序片段: build立连接 var clients = 0; io.sockets.on('connection', function (socket) { socket.on('connect', function () { clients += 1 }); socket.on('disconnect', function(){ clients -= 1 }); }); 呈现页面 app.get(navigation.chat.page, function(req, res){ res.render('chat', { title: navigation.chat.title, connected: clients }); }); 聊天页面jade模板片段: span#client_count #{connected} | connected clients 客户端的jQuery,Socket.io和JavaScript var socket = io.connect('http://localhost'); $(document).ready(function(){ socket.on('connect', socket.emit('connect')); }); 问题:连接的客户端数量仅在页面刷新时更新。 […]

RESTful API中复杂POST参数的可能格式是什么?

我正在使用node.js + express开发一个应用程序,其中包含一个允许用户订阅项目列表的结构。 每个列表订阅涉及诸如每个项目的最低分数和列表中的前N个项目之类的选项,并且订阅可被组织成与整个订阅列表模式中的特定排名相关的数字分组。 多个订阅可以在一个等级,允许关系,而其他人可能排名较高或较低。 我目前的问题是,我提供了一个界面来pipe理这些列表订阅和他们的选项,虽然我可以想到几个UI的可能性,我有点难住关于提交结果回我的服务器的最佳格式。 以JSON表示,这就是我将要处理的内容: [ [ {"list_id":1,"min_score":0,"limit":500} ], [ {"list_id":12,"min_score":5,"limit":-1}, {"list_id":16,"min_score":5,"limit":-1} ], [ {"list_id":2,"min_score":0,"limit":-1} ] ] 我试图简单地编码该JSON并将其作为单个参数进行发布,但这听起来有些诡异。 我试图保持我的API尽可能开放和一致,以允许其他客户端。