Articles of 表示

如何在express.js中引发404错误?

在app.js中,我有 // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); 所以如果我请求一些不存在的URL像http://localhost/notfound ,上面的代码将会执行。 在存在的URL像http://localhost/posts/:postId ,我想抛出404错误时访问一些不存在postId或删除postId。 Posts.findOne({_id: req.params.id, deleted: false}).exec() .then(function(post) { if(!post) { // How to throw a 404 error, so code can jump to above 404 catch? }

是防止在nodejs安全的开放redirect攻击?

我试图阻止打开redirect攻击。 请看下面的代码并检查安全性: var = require('url'); // http://example.com/login?redirect=http://example.com/dashboard app.route('/login', function (req, res, next) { var redirect = req.query.redirect, paths = url.parse(redirect); if (paths.host !== req.headers.host) { return next(new Error('Open redirect attack detected')); } return res.redirect(redirect); }); 防止打开redirect攻击是否足够?还是应该添加其他内容?

使用ES6导入+导出关键字和Babel导入/导出Express路由器

我有一个旧的testing项目,最初用Express 2.X构build。 我将它移动到Express 4.x并尝试插入Babel 6.x以使用服务器端的ES6function进行实验。 Express 4.x的更新正常。 原来的应用程序工作正常。 当我开始添加ES6function时出现问题。 特别是,我想用ES6 import {…} from…replace所有require和module.export指令,并且export {…} 。 问题:我似乎无法将外部文件的路由导入到主要的app.js文件中。 我的app.js像这样加载路由: import { indexRoute } from './routes/index_route'; app.use('/', indexRoute); 在index_route.js里面我有: "use strict"; import express from 'express'; var router = express.Router(); router.get('/', function(req, res, next) { res.render('index_view', { title: 'Express' }); }); export { router } 这个源代码对于Babel是可以的,但是在启动时节点抱怨: Router.use() requires middleware […]

自动对焦禁用的字段,将在一定的条件后启用

我有两个input字段,如下图所示。 我正在尝试着重于现在禁用的下一个字段,但是在第一个字段中input字符的最大长度后,它将被启用。 启用后,我希望光标自动在下一个字段。 我使用的代码如下: .directive('moveNext', function(){ return{ restrict: 'A', link: function($scope, element){ element.on("input", function(e){ if((element.val().length==element.attr("maxlength"))){ console.log('asdfasdf'); var tabindex = 1; var $nextelement = $('input[tabindex='+(tabindex+1)+']'); console.log($nextelement); if($nextelement){ console.log('asdf'); $nextelement.focus(); } } }); } } });

使用express-jwt作为中间件来validationAzure AD颁发的令牌

我想知道是否可以使用express-jwt NPM包作为中间件来validation由Azure AD发布的JWT令牌。 我们有一个以express / node编写的web API,并希望应用中间件模式来保护我们的端点并填充用户原则。 似乎: server.use(jwt({ audience: '{UUID}', issuer: 'https://sts.windows.net/{UUID}', }).unless({path : ['/']})) 因为它需要一个客户端秘密,但是从AD(就像在隐式stream程中那样),令牌是通过用户交互来检索的,并且没有客户端秘密。

如何在多台机器上群集Node应用程序

我正在使用Express js和节点群集来利用群集我也使用PM2进行进程和内存pipe理。 对于一台机器,它工作正常,但我的机器有两个核心,我想提供更多的核心。 所以我决定join3台机器,现在所有4台机器都使用LAN连接。 我也可以在networking浏览器中使用IP地址访问其他机器。 现在我想连接所有的机器,并希望共享他们的内核,以便我的应用程序最终拥有2 + 6 = 8个内核。 怎么可能? 有没有任何节点模块可以实现这一目标? 谢谢。

如何在Expressjs中创build可重用的函数代码?

在我的项目中,我是ExpressJs和模块模式的新手。 现在,我卡住了如何在另一个控制器中使用创build的控制器function。 请看例子: menu.ctrl.js ———— module.exports.save=function(req,res,next){ //here some logic //somethings like validate req.body,etc menu.save(function(err){ if(err) return next(err); res.json({msg:'menu save'}) }) } user.ctrl.js ———— var user=require('./user.model') var menuCtrl=require('./menu.ctrl') module.exports.save=function(req,res,next){ //here some logic user.save(function(err){ if(err) return next(err); //HERE I WANT TO USE `menuCtrl.save()` function res.json({msg:'success'}); }) }

如何在`express-js`中使用`less`来缩小CSS?

app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })); 这是我的app.js中的行less启用。 我怎样才能把{ compress: true }parameter passing给它呢?

node.js:标准的方式来存储应用程序的configuration?

有没有标准的方法来存储node.js应用程序的configuration为不同的环境? 我做了什么来完成这个: 创build:node_app_folder / conf / general.js node_app_folder / conf / development.js node_app_folder / conf / production.js general.js: module.exports = { setting: "SOME GENERAL SETTING" ,setting2: … … // global conf has export method extend that just copies/replaces properties from supplied object extend: {…} } development.js和production.js包含特定于环境的设置。 在app.js中: global.conf = require('./conf/general'); // As I use express.js […]

在Express / Node中通过https强制请求

我在端口3100上运行了一个Express.js(v 2.5.8)(节点v0.6.12)服务器。它由Nginx前端实现,它将http和https请求代理到端口3100。 我想通过https强制某些url。 这是一个例子(应用程序是我的快递服务器): app.get('/applyNow', ensureSec, secure.showApplication ); ensureSec是我试图用来检查连接是否通过SSL的函数: function ensureSec(req, res, next) { if (req.session.ssl == true) { return next(); } else { req.session.ssl = true; res.redirect('https://' + url.parse(req.headers.referer).host + url.parse(req.url).pathname); } } redirect工作,但节点(超时后)抛出一个错误说:不能GET / applyNow 什么是redirect到ssl的正确方法?