Tag: 表示

限制并发节点js

我想处理访问我的API的限制客户端/并发。 我使用的是Express Node JS,使用Load Test&Load进行testing之后,我得出了一个结论:在10000个并发访问之后,我的API没有响应,内存达到了90%左右。 我已经使用http.Agent.maxSockets,http.globalAgent一次限制大约500个请求sockets,但事实certificate,请求总是超过500, 我也使用限制器,而不使用redis这里是我的代码 var limiter = require('express-limiter')(app) limiter({ path: '*', method: 'all', lookup: ['connection.remoteAddress'], // 500 requests per seconds total: 500, expire: 1000 }); 但是当我用户压力testing它仍然达到记忆高峰。 任何帮助? 编辑: 另一个信息,我没有使用Nginx或AWS的负载平衡器

PUT和DELETE – REST风格的API Express MongoDB Mongoose

第一次发布。 我正在构build一个博客网站,并使用Node.js,Express.js,MongoDB和Mongoose作为我的后端。 GET和POST工作获取和创buildpost。 但是,使用POSTMAN时,PUT和DELETE不工作,因为我得到“不能删除(PUT)/ api /博客”。 我觉得这是相关的路线,特别是当我试图findById(/ api / blog /:blog_id)。 Server.js var express = require('express'); var mongoose = require('mongoose'); var port = process.env.PORT || 8080; var logger = require('morgan'); var favicon = require('serve-favicon'); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var app = express(); mongoose.connect('mongodb://127.0.0.1:27017/blog'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error: […]

Node.js:EJS页面模板的path问题

使用MEAN环境(Express 4)和EJS作为模板引擎,我正在努力解决path问题。 我的项目的根path:/ Users / admin / projectX / 页面path(.ejs格式):/ Users / admin / projectX / views / pages 部分path(.ejs格式):/ Users / admin / projectX / views / partials 代码示例: app.set('view engine', 'ejs'); //using ejs as template engine instead of jade app.set('views', __dirname + '/views'); //defining absolute path of views folder //sample route for calling […]

Express / Node.js:包含外部API查询结果; 加上故障排除路线

编辑:我仔细审查,并尝试从以下SOpost,这是非常丰富的解决scheme,但不幸的是没有能够设法使新的信息在我的情况下工作。 什么是JSONP? 与jQuery的jsonp 与JSONP使用.ajax()的基本示例? 使用jQuery创build跨域ajax JSONP请求 嗨! 我第一次尝试在Node.js&Express / MEAN堆栈应用程序中使用来自外部API(Google Books API – https://developers.google.com/books/docs/v1/using )的数据。 我正在使用google-books-search npm软件包( https://www.npmjs.com/package/google-books-search ) – 在这个时候,我不确定这是否让我更容易或更困难。 我花了整个周末的研究,试图解决我的问题。 我已经阅读了很多关于JSONP,AJAX等等的很酷的东西,但是担心我正在调查那些超出我当前理解能力的材料。 我希望能够在兔子洞进一步下降之前获得基本的工作。 这里是问题: 我的一半路线工作在浏览器和/或curl,但其他人不。 我能够从控制台中的外部API访问JSON查询结果,但无法操纵这些数据在我的HTML视图中显示。 我已经阅读了很多关于使用JSONP,但还没有能够使其工作。 以下是我想要的路线的解释: app.get('/') – root – WORKS app.get('/ authorsearch /:author') – 从Google Books API检索查询结果 – CAN从API中显示查询结果数据 app.get('/ titlesearch /:title') – 从Google Books API检索查询结果 – CAN从API中显示查询结果数据 app.post('/ books') – […]

与express的angular2路由

我正在使用ng2 alpha 42版本 我的代码如下: 问题是我期望我的输出中只有一个数据,所以我不需要在我的jade.code中使用(ng-for),但是我们可以看到意外的结果,我该如何改变这一点,请帮助! expression(它在我在PostMan中检查API时起作用) router.get('/project/:id', function(req,res){ sql = "SELECT * FROM Projects WHERE id=" + "'" + req.params.id + "'"; db.query(sql,function(err,project){ if(err){ res.send(err); }else{ res.json(project) console.log(project) } }) }) ng2代码(不工作) export class Project{ id: string; project: string; constructor(public routeParams : RouteParams, http:Http){ //this.projects = []; this.id = routeParams.get('id') http.get('/api/projects/project/' + this.id) .map(res => […]

Express.compress和移动设备

我试图通过他们的设备向客户展示不同的网站。 也就是说,移动用户可以通过移动应用程序和桌面用户获得networking应用程序。 这是我的代码: var express = require('express'), app = express(); app.get('/', function(req, res) { var ua = req.header('user-agent'); // Check the user-agent string to identyfy the device. if(/mobile|iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile|ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(ua)) { console.log("mobile"); app.use('/', express.static(__dirname + '/mobile-app/www')); res.sendfile(__dirname + '/mobile-app/www/index.html'); } else { console.log("web"); app.use('/', express.static(__dirname + '/web-app/www')); res.sendfile(__dirname + '/web-app/www/index.html'); } }); 每个应用程序工作正常 但是,如果我使用Chromenetworking工具更换设备,然后刷新,则不会加载其他设备。 也就是说,如果第一个服务实例是在networking应用程序,我刷新移动应用程序…移动应用程序将无法正常工作。 如果第一个服务实例在移动应用程序上,那么刷新到Web应用程序意味着这将不会加载。 […]

从Stripe页面redirectURL Node.js获取参数

我正在使用Stripe Connect并在文档中使用他们的示例代码。 您将用户redirect到条纹页面,他们注册并redirect到您的网站。 然后,条纹在URL中发送代码,以便您能够访问和收取用户帐户。 var CLIENT_ID = 'clientID'; var API_KEY = 'API Key'; var TOKEN_URI = 'https://connect.stripe.com/oauth/token'; var AUTHORIZE_URI = 'https://connect.stripe.com/oauth/authorize'; var qs = require('querystring'); var request = require('request'); var express = require('express'); var app = express(); app.get('/authorize', function(req,res){ res.redirect(AUTHORIZE_URI + '?' + qs.stringify({ response_type: 'code', scope: 'read_write', client_id: CLIENT_ID })); }) 在redirect之后,这个代码就是这个例子中的代码: app.get('/oauth/callback', function(req, […]

Angular2和express node.d.ts冲突

我正在尝试configuration一个angular2 + express项目。 我明白问题的原因,但不是正确的解决scheme。 以下是我的package.json依赖关系的相关部分: "dependencies": { "angular2": "2.0.0-beta.0", "express": "^4.13.3", "tsd": "^0.6.5", "typescript": "^1.4.1", <…lots of peer dependencies> } 节点5.2.0全局安装。 当我运行tsd install ,我得到了./typings/node.d.ts ,这个评论声称是v0.12.0 API。 但是这与angular2/typings/node/node.d.ts (也声明v0.12.0)冲突。 .d.ts文件是不同的,例如: ./node_modules/angular2/typings/node/node.d.ts —> declare var global: NodeJS.Global; ./typings/node/node.d.ts —> declare var global: any; 结果是大量的TS2300: Duplicate identifier错误。 我可以通过手动删除./typings/node和编辑./typings/express/express.d.ts来解决这个问题。 /// <reference path="../../node_modules/angular2/typings/node/node.d.ts" /> 现在一切正常,但显然这只是“错误的”。 在expres.d.ts中插入标准的方法是什么,所以它与Angular 2很好?

expression通配符规则

我正在使用Node和Express托pipe单页应用程序。 我使用客户端的静态中间件。 我正在使用pathurl来浏览应用,例如domain.com/profile/134。 我正在使用history.pushState在客户端内部更改页面,这工作正常。 我所缺less的是服务器上的通配符规则,当用户直接访问我的页面到非根的path时,捕获所有可能的path。 如果我试图直接访问domain.com/profile/134,我得到这个:“不能GET / profile / 134”。 我试图在server.js的末尾插入一个通配符,但是每次访问页面根目录的时候都会碰到它。 这是我的相关代码: var express = require('express'); var app = express(); app.use(express.static(__dirname + '/../client')); app.get('/*', function(req, res) { console.log('wildcard'); }); 这是正确的GET通配符规则来实现我所需要的,我怎样才能服务这个处理程序内的静态客户端? 之后只要保存了初始path,我的客户端就会find正确的页面。 我基本上希望这个通配符规则的行为与静态规则相同,但保留初始path。

不能GET / Express错误

我正在学习Mean.js堆栈,并尝试构build一个应用程序。 我已经安装了快车,它的工作原理。 当我试图configuration我的静态文件(html,js,图像等)时,事情就破裂了。 这是我的文件: server.js var express = require('express'); var app = express(); app.use(express.static(__dirname + "public")); app.listen(3000); console.log('Server running on port 3000'); 我的html文件非常简单: <!DOCTYPE> <html> <head> <title>Contact List App</title> </head> <body> <h1>Contact List App</h1> </body> </html> 因此,当我启动服务器: node server.js ,然后在浏览器中inputhttp://localhost:3000/时,出现“Can not Get”错误。 哪里有问题?