Tag: express

Express服务静态文件的基本authentication

我正在使用Express 4框架,我需要基本身份validation来提供静态文件。 这是我现在所拥有的: app.use('/files', auth); app.use('/files', express.static(path.join(__dirname, 'files'))); 这很好,如果我尝试访问/文件,但如果我写URL ../files/somefile.txt身份validation不需要,我可以访问该文件。 我想要“文件”目录下的所有文件只能通过身份validation的用户访问。

使用application / x-www-form-urlencoded使用node.js发送数据

我试图发送post请求到API和post参数应该是数组,这是如何发送它在cURL curl http://localhost:3000/check_amounts -d amounts[]=15 \ -d amounts[]=30 我试图在Node.js中使用请求模块来做到这一点 request.post('http://localhost:3000/check_amounts', { form: { 'amounts[]': 15 , 'amounts[]': 30 } }, function(error, response, body) { console.log(body) res.json(body); }); 但第二个数量覆盖第一个数量,API得到的结果如下: amounts = [30] 然后我尝试以不同的方式发送 request.post('http://localhost:3000/check_amounts', { form: { 'amounts[]': [ 15 , 30] } }, function(error, response, body) { console.log(body) res.json(body); }); 但结果不是预期的amounts = [{"0":15},{"1":30}] 注意:标题应该包含'Content-Type':'application / […]

使用Sails在express节点.js中从客户端发送一个string到mongoDB

尝试在Sails中从客户端发布到mongoDB的string val是从客户端到服务器数据库实时发布的string POST表单 (在这里html是正确的select?) <!DOCTYPE html> <html> <body> <form action="post" method="post"> <p> <label for="val">'Enter val'</label> <input type="text" name="val" autofocus /> <input type="submit" /> </p> </form> </body> ` routes.js (?) '/post': {controller: "PostController", action: "post"} Post.js module.exports = { 属性:{val:{type:'string',required:true,unique:true}}} PostController.js (?) module.exports = { var bodyParser = require('body-parser'); var app = express(); app.post : function […]

添加评论到MEAN.JS文章

我是MEAN的新手 ,我正在使用MEAN.JS ,它为我们的文章设置了我的身份validation,帐户pipe理和CRUD模块,我如何为这些文章添加注释? 有一个艰难的时间来得到这个。 谢谢您的帮助

mongoose不把所有文件保存在循环中

所以我在POST api的Express应用程序中有以下代码: var dashSchema = new mongoose.Schema({ key: 'string', status: 'string', assignee: 'string', summary: 'string' }); var dashData = mongoose.model('dashData', dashSchema); app.post('/api/data', function(req, res) { var issues = req.body.issues; for (var i=0;i<issues.length;i++) { dashData.create({key: issues[i].key, status: issues[i].fields.status.name, assignee: issues[i].fields.assignee, summary: issues[i].fields.summary}); } res.end(); }); 每当我发布一个5个“问题”的数组时,只有前两个正在写入MongoDB。 我认为这是因为它只是在遍历循环所需的时间内写入,但我不知道如何使它写入所有的数据,然后返回响应。 有任何想法吗?

明确存在的function被确定为未定义的

我正在尝试在NodeJS和AngularJS中构build一个简单的链接共享Web应用程序。 我有一个函数存在,但被报告为未定义。 以下是angularApp.js中此操作的特定代码 app.factory('auth', ['$http', '$window', function($http, $window){ var auth = {}; auth.register = function(user){ return $http.post('/register', user).success(function(data){ auth.saveToken(data.token); }).error(function(err, req, res, next) {console.log(err)}); }; return auth; }]); 这里是routes \ index.js中注册路由的代码 var express = require('express'); var jwt = require('express-jwt'); var router = express.Router(); var auth = jwt({secret: 'SECRET', userProperty: 'payload'}); var mongoose = require('mongoose'); var […]

parsingJSON并在Angular中显示数据

我在Angular中显示JSON数据时遇到了麻烦。 我成功地将数据从后端发送到前端(Angular),但是我无法显示它们。 我试图模拟JSFiddle类似的情况,虽然我已经从后端准备数据 获取/发送数据 – >后端: //push data to Redis var messages= JSON.stringify( [ { "name": "Msg1", "desc": "desc Msg1" }, { "name": "Msg2", "desc": "desc Msg2" }, { "name": "Msg3", "desc": "desc Msg3" }, { "name": "Msg4", "desc": "desc Msg4" } ]); redisClient.lpush('list', messages, function (err, response) { console.log(response); }); //get from redis and […]

将快速会话传递给socket.io

https://github.com/xpepermint/socket.io-express-session这是我尝试过的很多方法之一。 我也尝试了所有这些答案: 如何与Socket.IO 1.x和Express 4.x共享会话? 还有更多…这一切都给了我exaclty同样的结果: 抛出新的TypeError(“参数”url“必须是一个string,而不是”+ typeof url)^ TypeError:参数'url'必须是一个string,而不是undefined 我已经尝试了我在互联网上find的每一个解决scheme,基本上所有的东西都导致了我的错误。 在某些时候,我只是尝试复制和粘贴find的例子,他们给我完全一样的结果。 我猜中间件更新后会出错。 如何解决它? 有没有另一种可靠的方式与socket.io共享快速会话? var Session = require('express-session'); var session = Session({ secret: 'pass', resave: true, saveUninitialized: true }); var cookieParser = require('cookie-parser'); var express = require('express'); var app = express(); app.use(cookieParser()); app.use(session); // session support app.get('/', function (req, res) { req.session.uid = 1; […]

Node Express和csurf – 403(Forbidden)无效的csrf标记

通过浏览,并尝试了一切,我可以find在这里,谷歌search其他地方…我只是无法克服这一点。 我正在使用Node,Express,EJS,并试图在窗体上使用csurf,这是张贴w / jQuery的Ajax。 无论我如何configurationcsurf,我都会得到“403(Forbidden)无效的csrf标记” 我已经尝试在app.js和控制器中全局configuration。 这是我在app.js中尝试的: var express = require('express'); var session = require('express-session'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var mysql = require('mysql'); var flash = require("connect-flash"); var csrf = require("csurf"); var app = express(); // view engine setup […]

在ExpressJS下检测HTTPS只能使用四种方法中的一种

我最近添加了一个SSL证书到我的网站。 在添加HTTPS支持后,我想将人员redirect到安全连接。 我用googlesearch了解如何检测HTTPS并在Stack上find许多不同的方法。 它接缝他们为别人工作,但他们不为我工作。 4种方式检查一个安全的连接,只有一个工作。 什么不适合我: req.secure :即使我手动把https://总是返回false req.connection.encrypted :总是返回undefined,即使我手动把https:// req.protocol :总是返回http,即使我手动把https:// 什么工作: req.headers ['x-forwarded-proto']是实际返回实际的唯一途径。 知道这个我redirect到一个安全的连接,以下列方式: // Check if the connection is secure, if not, reddiret to a secure one. function requireHTTPS(req, res, next) { if(process.env.NODE_ENV == 'production') { if (req.headers['x-forwarded-proto'] !== 'https') { return res.redirect('https://' + req.get('host') + req.url); } } next(); } app.use(requireHTTPS); […]