我正在使用Express js和Node-cluster来利用集群我还使用PM2进行进程和内存管理.对于一台机器,它工作正常,但我的机器有2个核心,我想提供更多的核心.所以我决定加入另外3台机器,现在所有4台机器都使用LAN连接.我也可以在网络浏览器中使用IP地址访问其他机器.
现在我想连接所有机器并希望共享它们的内核,这样我最终将为我的应用程序提供2 + 6 = 8个内核.怎么可能?是否有任何节点模块可用于实现此目的?谢谢.
我正在研究MEAN应用程序,我正在为我的项目使用Angular 4.对于身份验证,我已经实现了Passport js Local-strategy.我正在维护持久会话Express-session.事情一直很好,直到这里.
问题
在同一个域session工作正常,我能够验证用户.但在跨域,我无法维持会话.它为跨域中的每个新请求生成新的会话ID.
然后我尝试Passport-jwt但问题是我没有对用户会话的控制.我的意思是如果用户不活动,甚至在服务器重新启动时也token无法从服务器注销用户也不会失效.
所以简单来说,我正在寻找Node js(Express js)中的身份验证解决方案,我可以在其中管理跨域身份验证.
我已经看到了一些博客文章和像这样的问题这样,但它并不能帮助.
谢谢.
编辑
我应该编写自己的代码来实现这一目标吗?如果是这样,我有一个计划.
我的基本计划是:
我认为这也是一个好主意.我只是想要一些建议,无论我是否正在考虑正确的方向.
我会得到这个:
编辑2
我在这里分享我的app.js代码
var express = require('express');
var helmet = require('helmet');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var dotenv = require('dotenv');
var env = dotenv.load();
var …Run Code Online (Sandbox Code Playgroud) 您好,我想对我的 Express JS 代码进行单元测试,我想模拟数据,因此在搜索多个网站和博客后,我找到了这个库,但我不清楚如何使用这个库进行模拟或数据。我的测试代码是
var request = require('supertest');
var server = require('./app');
var chai = require('chai');
var chaiHttp = require('chai-http');
var server = require('./app');
var should = chai.should();
chai.use(chaiHttp);
describe('loading express', function () {
it('responds to /', function testSlash(done) {
request(server)
.get('/')
.expect(200, done);
});
it('404 everything else', function testPath(done) {
request(server)
.get('/foo/bar')
.expect(404, done);
});
it('responds to /customers/getCustomerData', function testPath(done) {
request(server)
.get('/customers/getCustomerData?id=0987654321')
.end(function(err, res){
res.should.have.status(200);
res.body.should.be.a('object');
res.body.status.should.equal("success");
res.body.data.customerId.should.equal("0987654321");
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
目前此代码正在从数据库获取数据,但我想使用模拟数据进行单元测试。我怎样才能做到这一点?
__编辑__
我想测试 Express …
我有一个div
<div class="error-text" ng-if="customerIdLength > customerIdMaxLength" ng-init="error='yes'" >Error presented</div>
这里ng-if工作正常。
但
根据ng-init值,我禁用了这样的按钮:
<button class="btn btn-success" type="submit" ng-click="submitNumber();" ng-disabled="error=='yes'">Submit</button>
Run Code Online (Sandbox Code Playgroud)
这是行不通的。如果我把它放在ng-init其他没有的元素上,ng-if那么它就可以正常工作。那么背后的原因是什么呢?
在Javascript中,我已经看到回调函数作为最后一个参数传递我很好奇为什么呢?这是一种好的做法还是标准方式?
例如:
var doSomething = function(fname, lname, callback){
console.log("Your name is :"+ fname +" "+ lname);
callback();
}
var callback = function(){
console.log("Your name is printed successfully."):
}
doSomething('Arpit', 'Meena', callback); // callback is last parameter here
Run Code Online (Sandbox Code Playgroud)
我知道我们可以在任何位置传递它并且它有效但我只是想知道背后的原因.
谢谢.
我正在使用带有 Node + Express 应用程序的 Pug 模板引擎。
我需要在 Pug 文件中进行一些计算。例如,我有一个对象数组,我必须打印所有对象的金额字段的总和,并且需要在table.
为此,我使用each了 Pug 中可用的循环。
我正在尝试这样:
div
each discount in el.Discounts
if trxn.category != category
var discountAmount = discount.amount * -1
var distTotal = distTotal + discount.amount
p= distTotal
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我想声明和更新内联变量。
我怎样才能做到这一点?
谢谢。
我正在使用 Angular 7,并且在我的应用程序中使用了 HTTP 拦截器。
我无法跟踪该 HTTP 拦截器中的 401 状态代码。
我尝试了进站catchError,tap但它给出了状态 0,我想要 401 。
我的代码在这里:
return next.handle(request).pipe(tap(event => {
console.log('the ev is :', event);
if (event instanceof HttpResponse) {
this.onEnd();
}
}, err => {
if (err instanceof HttpErrorResponse) {
console.log('the eeeeeee is :', err);
this.onEnd();
// User logged out
if (err.status === 401) {
this.router.navigate(['logout']);
}
}
})).pipe(catchError(error => {
console.log('the ee is :', error);
return Observable.throw(error);
}));
Run Code Online (Sandbox Code Playgroud)
谢谢。
javascript ×5
express ×4
node.js ×4
angular ×2
angularjs ×1
callback ×1
function ×1
http ×1
mean-stack ×1
pug ×1
sinon ×1
sinon-chai ×1
unit-testing ×1